403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/test_traceback.cpython-313.pyc
�

��i��
��SrSSKJr SSKJr SSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKr
SSKrSSK
r
SSKrSSKrSSKJr SSKrSSKJrJrJrJrJrJrJr SSKJrJrJr SSKJ r J!r!J"r" SS	K#J$r$ SS
KJ%r%J&r& SSK'r'SSK(r(SSK)r)SSK*J+r+ SSK,J-r- SSK.r.\/S
:Xa\/S3OSr0\"SSS/5r1S\1l2\"S/SQ5r3\"S/SQ5r4\-"\55RlS-r7"SS\
Rp5r9"SS5r:"SS5r;"SS \;5r<\"5"S!S"55r=\"5\&"S#S$\:\=\
Rp555r>\\"5\&"S%S&\;\=\
Rp5555r?\\"5\&"S'S(\<\=\
Rp5555r@"S)S*5rAS+rBS,rC\R�"S-\R�"\B5<S.\R�"\C5<S/35rF\&"S0S1\
Rp\A55rG\\&"S2S3\
Rp\A555rH"S4S55rI\&"S6S7\I\
Rp55rJ\&"S8S9\I\
Rp55rK"S:S;\
Rp5rL"S<S=\
Rp5rM"S>S?\
Rp5rN"S@SA\
Rp5rO"SBSC5rP"SDSE\Q5rR"SFSG\S5rT"SHSI\
Rp5rU"SJSK\
Rp5rVSrW"SLSM5rX"SNSO\:\X\
Rp5rY\"SPSQ\;\X\
Rp55rZ"SRSS\
Rp5r["STSU\
Rp5r\\/S
:Xa\
R�"5 gg)VzTest cases for traceback module�)�
namedtuple)�StringION)�support)�Error�captured_output�cpython_only�	ALWAYS_EQ�requires_debug_ranges�has_no_debug_ranges�requires_subprocess)�TESTFN�temp_dir�unlink)�assert_python_ok�assert_python_failure�make_script)�forget)�force_not_colorized�force_not_colorized_test_class)�partial)�Path�__main__�.��code�co_filename�co_namec��[S/5$)N)�rrr)�iter)�_s �(C:\Python313\\Lib\test\test_traceback.py�<lambda>r#$s��4���#7��frame)�f_code�	f_globals�f_locals�tb)�tb_frame�	tb_lineno�tb_next�tb_lastizlevenshtein_examples.jsonc�P^�\rSrSrU4SjrU4SjrSrSrSrSr	Sr
S	rS
rSr
SrS
r\S5rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"S r#\$"5\S!55r%S"r&\'S#5r(S$r)S%r*S&r+S'r,S(r-S)r.S*r/S+r0U=r1$),�TracebackCases�,c�b>�[TU]5 [RUlS[lg�NF)�super�setUp�	_colorize�COLORIZE�colorize��self�	__class__s �r"r4�TracebackCases.setUp/s!���
��
��!�*�*��
�"�	�r$c�L>�[TU]5 UR[lg�N)r3�tearDownr7r5r6r8s �r"r>�TracebackCases.tearDown4s���
����!�]�]�	�r$c�z�U"5 [S5e!Ua n[R"X#5sSnA$SnAff=f)Nzcall did not raise exception)�
ValueError�	traceback�format_exception_only)r9�func�exc�values    r"�get_exception_format�#TracebackCases.get_exception_format8s=��	=��F��;�<�<���	?��2�2�3�>�>��	?�s��:�5�:�:c��[SSS5 g)Nzdef fact(x):
	return x!
�?�exec��compile�r9s r"�syntax_error_with_caret�&TracebackCases.syntax_error_with_caret@s���-�s�F�;r$c��[SSS5 g)Nz1 +
rJrKrLrNs r"�syntax_error_with_caret_2�(TracebackCases.syntax_error_with_caret_2Cs�����f�%r$c��[SSS5 g)Nzf(x, y for y in range(30), z)rJrKrLrNs r"�syntax_error_with_caret_range�,TracebackCases.syntax_error_with_caret_rangeFs���/��f�=r$c��[SSS5 g)Nz def spam():
  print(1)
 print(2)rJrKrLrNs r"�syntax_error_bad_indentation�+TracebackCases.syntax_error_bad_indentationIs���4�c�6�Br$c��[SSS5 g)NuPython = "Ṕýţĥòñ" +rJrKrLrNs r"�!syntax_error_with_caret_non_ascii�0TracebackCases.syntax_error_with_caret_non_asciiLs���=�s�F�Kr$c��[SSS5 g)Nz	 print(2)rJrKrLrNs r"�syntax_error_bad_indentation2�,TracebackCases.syntax_error_bad_indentation2Os����S�&�)r$c��[SSS5 g)Nz
blech  (  rJrKrLrNs r"� tokenizer_error_with_caret_range�/TracebackCases.tokenizer_error_with_caret_rangeRs����c�6�*r$c�X�URUR[5nUR[	U5S5 URUSR
5S:H5 URSUS5 URUSRS5USRS55 URUSRS5S5 URUR[5nURSUS5 URUSRS5S5 URUSRS5S-USRS55 URUSRS5S5 URUR[5nURSUS5 URUSRS5S5 URUSRS5S-USRS55 URUSRS5S5 URUR[5nURSUS5 URUSRS5S5 URUSRS	5USRS55 URUSRS5[	S
55 URUR[5nURSUS5 URUSRS5S5 URUSRS5USRS55 URUSRS5S5 g)N��z	return x!�^��!�
�+�yzy for y in range(30)�()rGrO�SyntaxError�assertEqual�len�
assertTrue�strip�assertIn�find�countrRr[rUra�r9�errs  r"�
test_caret�TracebackCases.test_caretUs����'�'��(D�(D�(3�5������S��1�%�����A�����+�5�6��
�
�c�3�q�6�"�����Q����S�)�3�q�6�;�;�s�+;�<�����Q����c�*�A�.��'�'��(F�(F�(3�5���
�
�c�3�q�6�"�����Q����d�+�Q�/�����Q����S�)�A�-�s�1�v�{�{�3�/?�@�����Q����c�*�A�.��'�'��(N�(N�(3�5���
�
�c�3�q�6�"�����Q����d�+�Q�/�����Q����S�)�A�-�s�1�v�{�{�3�/?�@�����Q����c�*�A�.��'�'��(J�(J�(3�5���
�
�c�3�q�6�"�����Q����d�+�Q�/�����Q����S�)�3�q�6�;�;�s�+;�<�����Q����c�*�C�0F�,G�H��'�'��(M�(M�(3�5���
�
�c�3�q�6�"�����Q����d�+�Q�/�����Q����S�)�3�q�6�;�;�s�+;�<�����Q����c�*�A�.r$c���[SS5n[R"[U5nUR[	U5S5 URUSR5S5 g)N�error�zx.py�N�
bad syntax�rer})rmrBrCrnrorq�r9rErvs   r"�test_nocaret�TracebackCases.test_nocaretzsO���'�#C�D���-�-�k�3�?������S��1�%�����Q������6r$c���[[S5nURS5 SSS5 [SS[5u p#UR	5nUR[
U5S5 URUSS5 URSUS	5 URUS
S5 URUSS
5 [[5 g!,(df   N�=f![[5 f=f)N�wz
x = 1 / 0
�-X�no_debug_rangesrdr�"Traceback (most recent call last):sline 1, in <module>rerg�
    x = 1 / 0r~�#ZeroDivisionError: division by zero)	�openr
�writer�
splitlinesrnrorrr)r9�fr!�stderr�liness     r"�'test_no_caret_with_no_debug_ranges_flag�6TracebackCases.test_no_caret_with_no_debug_ranges_flag�s���	��f�c�"�a����
�&�#�1��'��1�L�A�q��%�%�'�E����S��Z��+����U�1�X�'L�M��M�M�0�%��(�;����U�1�X�'7�8����U�1�X�'M�N��6�N�#�"��
�6�N�s"�C �C�BC �
C�C � C1c��[R"S5n[[S5nUR	U5 SSS5 [SS[5u p4UR
5nUR[U5S5 URUSS5 URSUS	5 URUS
S5 URUSS
5 [[5 g!,(df   N�=f![[5 f=f)Nz�
            import traceback
            try:
                x = 1 / 0
            except ZeroDivisionError:
                traceback.print_exc()
            r�r�r�rdrr�sline 4, in <module>rergr�r~r�)�textwrap�dedentr�r
r�rr�rnrorrr)r9rr�r!r�r�s      r"�8test_no_caret_with_no_debug_ranges_flag_python_traceback�GTracebackCases.test_no_caret_with_no_debug_ranges_flag_python_traceback�s������ ���	��f�c�"�a�����
�#�,��'��1�L�A�q��%�%�'�E����S��Z��+����U�1�X�'L�M��M�M�0�%��(�;����U�1�X�'7�8����U�1�X�'M�N��6�N�#�"��
�6�N�s"�C6�C%�BC6�%
C3�/C6�6Dc�8�[R"S5n[[S5nUR	U5 SSS5 [[5un nUR
US5 [[5 g!,(df   NC=f![[5 f=f)Na>
                import sys
                from weakref import ref

                sys.setrecursionlimit(15)

                def f():
                    ref(lambda: 0, [])
                    f()

                try:
                    f()
                except RecursionError:
                    pass
        r�r)r�r�r�r
r�rrnr)r9rr��rcr!s     r"�%test_recursion_error_during_traceback�4TracebackCases.test_recursion_error_during_traceback�sr����� �
��	��f�c�"�a�����
�#�(��/�H�B��1����R��#��6�N�
#�"��
�6�N�s!�B�A7�-B�7
B�B�Bc��URUR[5nUR[	U5S5 URUSR5S5 UR
SUS5 URUSRS5S-USRS55 URUR[5nUR[	U5S5 URUSR5S5 g)Nrdrezprint(2)rfrg�)r~)	rGrX�IndentationErrorrnrorqrrrsr^rus  r"�test_bad_indentation�#TracebackCases.test_bad_indentation�s����'�'��(I�(I�(8�:������S��1�%�����Q������4��
�
�c�3�q�6�"�����Q����S�)�A�-�s�1�v�{�{�3�/?�@��'�'��(J�(J�(8�:������S��1�%�����Q������4r$c��[5n[R"URU5nUR	US/5 g)NzKeyboardInterrupt
)�KeyboardInterruptrBrCr:rn)r9�e�lsts   r"�test_base_exception�"TracebackCases.test_base_exception�s4������-�-�a�k�k�1�=������4�5�6r$c�T�"SS[5n[R"X"55nUR[	U5S5 SnUR
S;a
URnO'SRUR
UR/5nURUSU<SU<S	35 g)
Nc��\rSrSrSrSrg)�?TracebackCases.test_format_exception_only_bad__str__.<locals>.X��c��SS- g�Nrer�rNs r"�__str__�GTracebackCases.test_format_exception_only_bad__str__.<locals>.X.__str__��	���!�r$r�N��__name__�
__module__�__qualname__�__firstlineno__r��__static_attributes__r�r$r"�Xr�����
r$r�re�<exception str() failed>)r�builtinsrr�: ri)�	ExceptionrBrCrnror�r��join�r9r�rv�	str_value�str_names     r"�%test_format_exception_only_bad__str__�4TracebackCases.test_format_exception_only_bad__str__�s���	�	�	��-�-�a���5������S��1�%�.�	��<�<�3�3��~�~�H��x�x����q�~�~� >�?�H�����Q��x��!C�Dr$c��[S[S5/5n[R"U5nUR	US/5 g)N�A�B�$ExceptionGroup: A (1 sub-exception)
��ExceptionGrouprArBrCrn�r9�egrvs   r"�.test_format_exception_group_without_show_group�=TracebackCases.test_format_exception_group_without_show_group�s9��
�C�*�S�/�!2�
3���-�-�b�1������F�G�Hr$c��[S[S5/5n[R"USS9nUR	USS/5 g�Nr�r�T��
show_groupr��   ValueError: B
r�r�s   r"�test_format_exception_group�*TracebackCases.test_format_exception_group�sB��
�C�*�S�/�!2�
3���-�-�b�T�B������3� �
�	r$c��[S[S5/5n[R"USS9nUR	USS/5 g)Nr�r�Tr�z(BaseExceptionGroup: A (1 sub-exception)
z   BaseException: B
)�BaseExceptionGroup�
BaseExceptionrBrCrnr�s   r"� test_format_base_exception_group�/TracebackCases.test_format_base_exception_group�sC��
��m�C�&8�%9�
:���-�-�b�T�B������7�#�
�	r$c��[S5nURS5 [SU/5n[R"USS9nURU/SQ5 g)Nr��Noter�Tr�)r�r�z   Note
)rA�add_noter�rBrCrn�r9rEr�rvs    r"�%test_format_exception_group_with_note�4TracebackCases.test_format_exception_group_with_note�sL����o�����V��
�C�#��
'���-�-�b�T�B������
�	r$c��[S[S5/5n[R"[USS9nUR	USS/5 gr�r�r�s   r"�*test_format_exception_group_explicit_class�9TracebackCases.test_format_exception_group_explicit_classsD��
�C�*�S�/�!2�
3���-�-�n�b�T�R������3� �
�	r$c��[S[S5[S5/5n[R"USS9nURU/SQ5 g)Nr�r��CTr�)�%ExceptionGroup: A (2 sub-exceptions)
r�z   TypeError: C
)r�rA�	TypeErrorrBrCrnr�s   r"�/test_format_exception_group_multiple_exceptions�>TracebackCases.test_format_exception_group_multiple_exceptionssB��
�C�*�S�/�9�S�>�!B�
C���-�-�b�T�B������
�	r$c��[S[S5/5n[R"USS9nUR	U/SQ5 g)N�A
1zB
2Tr�)�&ExceptionGroup: A
1 (1 sub-exception)
r��   2
r�r�s   r"�.test_format_exception_group_multiline_messages�=TracebackCases.test_format_exception_group_multiline_messagess=��
�F�Z��%7�$8�
9���-�-�b�T�B������
�	r$c��[S5nURS5 [SU[S5/5n[R
"USS9nUR
U/SQ5 g)NzB

2
z
C

3zA

1
�DTr�)
z)ExceptionGroup: A

1
 (2 sub-exceptions)
r��   
r�r�r�z   C
r�z   3
z   IndexError: D
)rAr�r��
IndexErrorrBrCrnr�s    r"�/test_format_exception_group_multiline2_messages�>TracebackCases.test_format_exception_group_multiline2_messages sT����$�����Z� �
�J��j��o�(>�
?���-�-�b�T�B������
�	r$c��[SS5n[SU/5n[R"USS9nUR	U/SQ5 g)Nrzr{r�Tr�)r�z     File "x.py", line 23
z       bad syntax
z   SyntaxError: error
)rmr�rBrCrnr�s    r"�(test_format_exception_group_syntax_error�7TracebackCases.test_format_exception_group_syntax_error2sD���'�#C�D��
�F�S�E�
*���-�-�b�T�B������
�	r$c��[S5nURS5 [S[S5[SU[	S5/5[S5/5n[R"USS	9nURU/S
Q5 g)Nr�zNote
multiliner�r�r��E�FTr�)z%ExceptionGroup: A (3 sub-exceptions)
r�z(   ExceptionGroup: C (2 sub-exceptions)
z      IndexError: D
z      Note
z      multiline
z      LookupError: E
z   TypeError: F
)	r�r�r�rA�LookupErrorr�rBrCrnr�s    r"�-test_format_exception_group_nested_with_notes�<TracebackCases.test_format_exception_group_nested_with_notes=st����o�����&�'�
�C��s�O��3��k�#�&6� 7�8��c�N�"
���
�-�-�b�T�B������	
�		r$c	��SnSn[SU"5[SU"5/5/5n[R"USS9nURU/SQ5 g)Nc�B�SS- g![anUsSnA$SnAff=fr���ZeroDivisionError�r�s r"r��ETracebackCases.test_format_exception_group_with_tracebacks.<locals>.fRs#��
��A���$�
����
�s��
���c�L�[S5e![anUsSnA$SnAff=f�N�g�r�r�s r"r�ETracebackCases.test_format_exception_group_with_tracebacks.<locals>.gXs&��
���n�$���
����
�s�
�
#��#�#r�r�Tr�)r�z'   ZeroDivisionError: division by zero
z'   ExceptionGroup: B (1 sub-exception)
z      TypeError: g
�r�rBrCrn)r9r�rr�rvs     r"�+test_format_exception_group_with_tracebacks�:TracebackCases.test_format_exception_group_with_tracebacksQs[��	�	��C�
�C��3����&�"
����-�-�b�T�B������
�	r$c��Sn[SU"5/5n[R"USS9nURUSS/5 g)Nc�v�SS- g![a [S5ef=f![anUsSnA$SnAff=fr�)r�rAr�r�s r"r��@TracebackCases.test_format_exception_group_with_cause.<locals>.fks@��
�(���E��(�(�$�Q�-�'�(���
����
�s�	��"�
8�3�8�8r�Tr�r�z   ValueError: 0
r)r9r�r�rvs    r"�&test_format_exception_group_with_cause�5TracebackCases.test_format_exception_group_with_causejsF��	��C�!�#��
'���-�-�b�T�B������3� �
�	r$c�b�[SS5[SS/S-5[SS5[SS5[SS5[SS5[SS/S-5[SS5[SS	54	H�nURUS
9 [R"USS9nURb?UR[
U5S
5 URUSRS55 OUR[
U5S5 URUSS5 SSS5 M� g!,(df   M�=f)Nrz�abcdrd)rergr~rd)re�a�brg�abcdefr)rergr~rd�r)rerrrg�c�d�rETr�rgr�  Filere���zSyntaxError: error
)	rm�subTestrBrC�linenornrorp�
startswithrs   r"�;test_format_exception_group_syntax_error_with_custom_values�JTracebackCases.test_format_exception_group_syntax_error_with_custom_values{s��
���(���$��!��,����.����.���!1�2����*���$��!��,���!3�4���!;�<�
�C����#��&��5�5�c�d�K���:�:�)��$�$�S��X�q�1��O�O�C��F�$5�$5�h�$?�@��$�$�S��X�q�1�� � ��R��*@�A�'�&�
�'�&�s
�BD�
D.	c��^^^^	�SSKm	SSKmTRT	RSS/TRTR
S9nUR
5up#[US5R5SmUUUU	4SjnU"SSSS	5 S
HbnUS:XaSnOUS:XaSnOS
nU"SRU5XeS5 U"SRU5XeS5 U"SRU5XeS5 Md U"SS
SS5 g)Nr�-cz&import sys; print(sys.stdout.encoding)��stdoutr��asciic�N>�[[SUS9nURSRX55 SSS5 TR	TR
[/TRTRS9nUR5upgURT
5R5n[[5 URT
S5nURT
5n	SRU	5n
SRU	5nTRSU-US	S
RUS	U55 TRUSRU
5SRUSU
55 US
nTRX�:HSRX�55 g!,(df   GNU=f![[5 f=f)Nr�)�encodingz}{0}if 1:
                        import traceback;
                        raise RuntimeError('{1}')
                        r �backslashreplacezraise RuntimeError('{0}')zRuntimeError: {0}zline %srez)Invalid line number: {0!r} instead of {1}rgz.Invalid traceback line: {0!r} instead of {1!r}r~z-Invalid error message: {0!r} instead of {1!r})r�r
r��format�Popen�
executable�PIPE�STDOUT�communicate�decoder�r�encoderrrp�endswith)�
firstlines�message�charsetr�output�processr!r��encoded_message�
message_ascii�err_line�err_msg�actual_err_msg�output_encodingr9�
subprocess�syss             ����r"�do_test�1TracebackCases.test_encoded_file.<locals>.do_test�s����
��&�#��8�F��L�L�"�#�F�:�7�9�9�%�*�*�C�N�N�F�+C�%�?�?�:�3D�3D�+�F��!(�!4�!4�!6�������7�B�B�D���v��&�n�n�_�-?�A�O�,�2�2�?�C�M�2�9�9�-�H�H�)�0�0��?�G��M�M�9�v�-��q�	�;�B�B��1�I�v�'�
(�
�O�O�F�1�I�.�.�x�8�@�G�G��1�I�x�)�
*�$�A�Y�N��O�O�N�5�?�F�F�"�-�
.�;9�8���v��s"�F�!F�A.F�
F�F�F$r�foor~)r"z
iso-8859-1�utf-8�GBKr@u丂儀uhé hoz# coding: {0}
rdz#!shebang
# coding: {0}
rz 	
# coding: {0}
zx=0
# coding: GBK
r?)
r;r:r'r(r)r*r+�strr�r&)
r9r3r!r�r<r1�textr9r:r;s
`      @@@r"�test_encoded_file� TracebackCases.test_encoded_file�s���	�
�"�"�C�N�N�D�$L�$N�*4�/�/�*4�*;�*;�#�=��!�,�,�.����f�g�.�9�9�;�A�>��"	.�"	.�H	��E�7�A�&�>�G��'�!����E�!�%��!���%�,�,�W�5��1�
&��0�7�7��@��1�
&��,�3�3�G�<��1�
&�?�	�&�
�G�Q�?r$c��[R"S5n[SU5up#n/SQnURUR	5U5 g)Na
            import sys
            import traceback

            class PrintExceptionAtExit(object):
                def __init__(self):
                    try:
                        x = 1 / 0
                    except Exception as e:
                        self.exc = e
                        # self.exc.__traceback__ contains frames:
                        # explicitly clear the reference to self in the current
                        # frame to break a reference cycle
                        self = None

                def __del__(self):
                    traceback.print_exception(self.exc)

            # Keep a reference in the module namespace to call the destructor
            # when the module is unloaded
            obj = PrintExceptionAtExit()
        r)r�s&  File "<string>", line 8, in __init__r�s
        ^^^^^r�)r�r�rrnr�)r9rr�r!r��expecteds      r"�test_print_traceback_at_exit�+TracebackCases.test_print_traceback_at_exit�sL����� �
��,.�d�D�9���F�<��
	
����*�*�,�h�7r$c�<�[R"S5n[5n[USUS9n[	U5upEnSSS5 URWS5 SSWS3R
5S/nURWR5U5 g!,(df   NX=f)	Nz�            import io
            import traceback
            # Trigger fallback mode
            traceback._print_exception_bltin = None
            del io.open
            raise RuntimeError("should not crash")
        �tb_test_no_io_open)�
script_dir�script_basename�sourcerer��  File "z", line 6, in <module>sRuntimeError: should not crash)r�r�rrrrnr-r�)r9�crasherrK�scriptr�r!r�rFs        r"�test_lost_io_open� TracebackCases.test_lost_io_open�s����/�/�#�
���Z�:� �%� 4�� �F�"7�v�!>��B���	
����Q��9��v�h�&<�=�D�D�F�5�7��	
����*�*�,�h�7��Z�s�B
�
Bc��[5n[R"[[S5SUS9 UR	UR5S5 g�N�	projector��file�Exception: projector
�rrB�print_exceptionr�rn�getvalue�r9r2s  r"�test_print_exception�#TracebackCases.test_print_exceptions?������!�!��y��-�t�&�	
�	
������*�,D�Er$c��[5n[R"[S5US9 UR	UR5S5 grTrYr\s  r"�test_print_exception_exc�'TracebackCases.test_print_exception_excs6������!�!�)�K�"8�v�F�������*�,D�Er$c��[R"[S[S55 [	5n[
R"US9 URUR5S5 SSS5 g!,(df   g=f)N�last_exc�*rVzValueError: 42
)	r�	swap_attrr;rArrB�
print_lastrnr[r\s  r"�test_print_last�TracebackCases.test_print_last"sR��
�
�
�s�J�
�2��
?��Z�F�� � �f�-����V�_�_�.�0B�C�@�
?�
?�s�?A.�.
A<c�H�[S5n[R"U5nURUS/5 UR	[
S5 [R"URU5 SSS5 UR	[
S5 [R"URURS9 SSS5 UR	[S5 [R"US9 SSS5 g!,(df   N�=f!,(df   NS=f!,(df   g=f)NrUrXzBoth or neither�r)zrequired positional argumentr)	r�rB�format_exceptionrn�assertRaisesRegexrAr:�
__traceback__r�)r9r�r2s   r"�test_format_exception_exc�(TracebackCases.test_format_exception_exc(s����k�"���+�+�A�.������":�!;�<�
�
#�
#�J�0A�
B��&�&�q�{�{�A�6�C�
�
#�
#�J�0A�
B��&�&�q�{�{�q���G�C�
�
#�
#�I�/M�
N��&�&�1�-�O�
N�	C�
B��
B�
B��
N�
N�s$�"C1�*D�D�1
C?�
D�
D!c�h�[R"[S55nURUS/5 g)NrUrX)rBrCr�rnr\s  r"�test_format_exception_only_exc�-TracebackCases.test_format_exception_only_exc3s+���0�0��;�1G�H������":�!;�<r$c��Sn[5n[R"SUS9 URUR	5U5 [5n[R"SSSUS9 URUR	5U5 [5n[R
"SUS9 URUR	5U5 UR[R"S5U5 UR[R"S5U/5 UR[R"SSS5U/5 UR[R"S5U/5 UR[R"SS5U/5 g)NzNoneType: None
rV)	rrBrZrnr[�	print_exc�
format_excrkrC)r9�NONE_EXC_STRING�excfiles   r"�test_exception_is_None�%TracebackCases.test_exception_is_None7s@��,���*���!�!�$�W�5�����)�)�+�_�=��*���!�!�$��d��A�����)�)�+�_�=��*�����D�w�/�����)�)�+�_�=�����-�-�d�3�_�E�����3�3�D�9�O�;L�M�����&�&�t�T�4�8�?�:K�	M�����+�+�D�1�O�3D�	F�����+�+�D�$�7�/�9J�	Lr$c�r�UR[[R"[R
55S5 UR[[R"[R55S5 UR[[R"[R55S5 g)NzV(exc, /, value=<implicit>, tb=<implicit>, limit=None, file=None, chain=True, **kwargs)zK(exc, /, value=<implicit>, tb=<implicit>, limit=None, chain=True, **kwargs)z9(exc, /, value=<implicit>, *, show_group=False, **kwargs))rnrA�inspect�	signaturerBrZrkrCrNs r"�test_signatures�TracebackCases.test_signaturesNs��������!�!�)�";�";�<�=�<�	>�
	
�����!�!�)�"<�"<�=�>�%�	'�
	
�����!�!�)�"A�"A�B�C�G�	Ir$�r7)2r�r�r�r�r4r>rGrOrRrUrXr[r^rarwr�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrCrGrrQr]r`rgrnrqrxr}r��
__classcell__�r:s@r"r/r/,s���#�
+�=�<�&�>�C�L�*�+�#/�J7�����&�0�25�7�E�I�
��	�����$	��(�2�"B�0���C@���C@�J8�B�8��8�4F�F�
D�	.�=�L�.
I�
Ir$r/c�P�\rSrSrSSjr\R
RS-rSrg)�"PurePythonExceptionFormattingMixini^c��U"5 URS5 g![a( [R"5R	5X#s$f=f)N�No exception thrown.)�failr�rBrur�)r9�callable�slice_start�	slice_ends    r"�
get_exception�0PurePythonExceptionFormattingMixin.get_exception_sK��	.��J�
�I�I�,�-���	N��'�'�)�4�4�6�{�M�M�	N�s��/A
�A
rgr�N�rr)	r�r�r�r�r��__code__�co_firstlineno�
callable_liner�r�r$r"r�r�^s��.�"�*�*�9�9�A�=�Mr$r�c�T�\rSrSrSrSSjr\RRS-rSr	g)�CAPIExceptionFormattingMixinijrc� �SSKJn U"5 URS5 g![abn[	S5nU"XPR
5 SSS5 O!,(df   O=fWR
5R5X#sSnA$SnAff=f)Nr��exception_printr�r�)�	_testcapir�r�r�r�LEGACYr[r�)r9r�r�r�r�r��tbstderrs       r"r��*CAPIExceptionFormattingMixin.get_exceptionmsn��-�	K��J��I�I�,�-���	K� ��*�h���;�;�/�+�*�*���$�$�&�1�1�3�K�J�J��	K�s1�!�
B
�B�A�		B�
A 	�&B�B
�B
r~r�Nr�)
r�r�r�r�r�r�r�r�r�r�r�r$r"r�r�js%��
�F�K�"�*�*�9�9�A�=�Mr$r�c��\rSrSrSrSrg)�"CAPIExceptionFormattingLegacyMixiniyrer�N)r�r�r�r�r�r�r�r$r"r�r�ys��
�Fr$r�c��\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(S'r)S(r*S)r+S*r,S+r-S,r.S-r/S.r0g/)0�#TracebackErrorLocationCaretTestBasei|z>
Tests for printing code error expressions as part of PEP 657
c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��[S5e)Nzbasic caret tests�rAr�r$r"r��?TracebackErrorLocationCaretTestBase.test_basic_caret.<locals>.f�s��%�&9�:�:r$�+Traceback (most recent call last):
  File "�", line �9, in get_exception
    callable()
    ~~~~~~~~^^
  File "rezm, in f
    if True: raise ValueError("basic caret tests")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
�r�r��__file__r�r�rnr�)r9r��lineno_f�
expected_f�result_liness     r"�test_basic_caret�4TracebackErrorLocationCaretTestBase.test_basic_caret�s��	;��:�:�,�,��
��j���);�);�(<�=� �j���!���5C�	
C�	��)�)�!�,������'<�'<�'>�?r$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��[S5e)NuĤellö Wörldr�r�r$r"�f_with_unicode�RTracebackErrorLocationCaretTestBase.test_line_with_unicode.<locals>.f_with_unicode�s��%�&6�7�7r$r�r�r�reuq, in f_with_unicode
    if True: raise ValueError("Ĥellö Wörld")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
r�)r9r�r�r�r�s     r"�test_line_with_unicode�:TracebackErrorLocationCaretTestBase.test_line_with_unicode�s��	8�"�*�*�9�9��
��j���);�);�(<�=� �j���!���5=�	
=�	��)�)�.�9������'<�'<�'>�?r$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc�&�S[S[4Sjng)Nr�returnc��g)Nrr��rs r"r>�cTracebackErrorLocationCaretTestBase.test_caret_in_type_annotation.<locals>.f_with_type.<locals>.foo�s��r$)�THIS_DOES_NOT_EXIST�int�r>s r"�f_with_type�VTracebackErrorLocationCaretTestBase.test_caret_in_type_annotation.<locals>.f_with_type�s��
�*�
��
r$r�r�r�reza, in f_with_type
    def foo(a: THIS_DOES_NOT_EXIST ) -> int:
               ^^^^^^^^^^^^^^^^^^^
r�)r9r�r�r�r�s     r"�test_caret_in_type_annotation�ATracebackErrorLocationCaretTestBase.test_caret_in_type_annotation�s��	��'�'�6�6��
��j���);�);�(<�=� �j���!���53�	
3�	��)�)�+�6������'<�'<�'>�?r$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��[S5e)Nzerror over multiple linesr�r�r$r"�f_with_multiline�]TracebackErrorLocationCaretTestBase.test_caret_multiline_expression.<locals>.f_with_multiline�s��%�+��r$r�r�r�rez�, in f_with_multiline
    if True: raise ValueError(
             ^^^^^^^^^^^^^^^^^
        "error over multiple lines"
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^r��r9r�r�r�r�s     r"�test_caret_multiline_expression�CTracebackErrorLocationCaretTestBase.test_caret_multiline_expression�s���	�
$�,�,�;�;��
��j���);�);�(<�=� �j���!���5�	

�	��)�)�*:�;������'<�'<�'>�?r$c	�^�[R"S5mU4SjnURRnS[SUR
S[SUS-S3	nUR
U5nURXCR55 [R"S5mU4S	jnURRnS[SUR
S[SUS-S
3	nUR
U5nURXCR55 g)Nz�
        def foo(*args, **kwargs):
            pass

        a, b, c = 1, 2, 3

        foo(a, z
                for z in
                    range(10), b, c)
        c�>�[TSS5$�NrJrKrL�rs�r"r��jTracebackErrorLocationCaretTestBase.test_caret_multiline_expression_syntax_error.<locals>.f_with_multiline������4��f�-�-r$r�r�r�rgzh, in f_with_multiline
    return compile(code, "?", "exec")
  File "?", line 7
    foo(a, z
           ^zX
        dummy_call(
            "dummy value"
            foo="bar",
        )
        c�>�[TSS5$r�rLr�s�r"r�r��r�r$zr, in f_with_multiline
    return compile(code, "?", "exec")
  File "?", line 3
    "dummy value"
    ^^^^^^^^^^^^^)	r�r�r�r�r�r�r�rnr�)r9r�r�r�r�rs     @r"�,test_caret_multiline_expression_syntax_error�PTracebackErrorLocationCaretTestBase.test_caret_multiline_expression_syntax_error�s)������	 �	
��	.�$�,�,�;�;��
��j���);�);�(<�=� �j���!���5�	
�	��)�)�*:�;������'<�'<�'>�?���� �
��	.�$�,�,�;�;��
��j���);�);�(<�=� �j���!���5 �	
 �	��)�)�*:�;������'<�'<�'>�?r$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��SSS--$�Nrgrerr�r�r$r"r��dTracebackErrorLocationCaretTestBase.test_caret_multiline_expression_bin_op.<locals>.f_with_multilines���A����
r$r�r�r�rgz9, in f_with_multiline
    2 + 1 /
        ~~^
    0
    ~r�r�s     r"�&test_caret_multiline_expression_bin_op�JTracebackErrorLocationCaretTestBase.test_caret_multiline_expression_bin_ops���	�$�,�,�;�;��
��j���);�);�(<�=� �j���!���5�	
�	��)�)�*:�;������'<�'<�'>�?r$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��SnSUS--S-$�N��
r�r���divisors r"�f_with_binary_operator�cTracebackErrorLocationCaretTestBase.test_caret_for_binary_operators.<locals>.f_with_binary_operator+s���G���!��#�b�(�(r$r�r�r�rgzY, in f_with_binary_operator
    return 10 + divisor / 0 + 30
                ~~~~~~~~^~~
r��r9r�r��expected_errorr�s     r"�test_caret_for_binary_operators�CTracebackErrorLocationCaretTestBase.test_caret_for_binary_operators*s���	)�*�2�2�A�A��
��j���);�);�(<�=� �j���!���5,�	
,�	��)�)�*@�A������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��SnSUS--S-$r�r�)�áóís r"r��pTracebackErrorLocationCaretTestBase.test_caret_for_binary_operators_with_unicode.<locals>.f_with_binary_operator=s���F����
�?�R�'�'r$r�r�r�rguT, in f_with_binary_operator
    return 10 + áóí / 0 + 30
                ~~~~^~~
r�r�s     r"�,test_caret_for_binary_operators_with_unicode�PTracebackErrorLocationCaretTestBase.test_caret_for_binary_operators_with_unicode<s���	(�*�2�2�A�A��
��j���);�);�(<�=� �j���!���5(�	
(�	��)�)�*@�A������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��SnSUS--S-$r�r�r�s r"r��lTracebackErrorLocationCaretTestBase.test_caret_for_binary_operators_two_char.<locals>.f_with_binary_operatorOs���G���1��$�r�)�)r$r�r�r�rgz[, in f_with_binary_operator
    return 10 + divisor // 0 + 30
                ~~~~~~~~^^~~
r�r�s     r"�(test_caret_for_binary_operators_two_char�LTracebackErrorLocationCaretTestBase.test_caret_for_binary_operators_two_charNs���	*�*�2�2�A�A��
��j���);�);�(<�=� �j���!���5-�	
-�	��)�)�*@�A������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��SnS=pX-U-$�Nrerr��rrrs   r"r��TracebackErrorLocationCaretTestBase.test_caret_for_binary_operators_with_spaces_and_parenthesis.<locals>.f_with_binary_operatoras���A��J�A��<�!�#�#r$r�r�r�r~zP, in f_with_binary_operator
    return ( a   )   +b + c
           ~~~~~~~~~~^~
r�r�s     r"�;test_caret_for_binary_operators_with_spaces_and_parenthesis�_TracebackErrorLocationCaretTestBase.test_caret_for_binary_operators_with_spaces_and_parenthesis`s���	$�
*�2�2�A�A��
��j���);�);�(<�=� �j���!���5(�	
(�	��)�)�*@�A������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��SnSnUU-nU$r�r��rrrs   r"r��mTracebackErrorLocationCaretTestBase.test_caret_for_binary_operators_multiline.<locals>.f_with_binary_operatorts ���A��A����A��Hr$r�r�r�r~zn, in f_with_binary_operator
       a = b    \
           ~~~~~~
    +\
    ^~
          c  # test
          ~
r�r�s     r"�)test_caret_for_binary_operators_multiline�MTracebackErrorLocationCaretTestBase.test_caret_for_binary_operators_multiliness���	�*�2�2�A�A��
��j���);�);�(<�=� �j���!���5�	

�	��)�)�*@�A������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��SnSnUU-nU$r�r�r�s   r"r��vTracebackErrorLocationCaretTestBase.test_caret_for_binary_operators_multiline_two_char.<locals>.f_with_binary_operator�s%���A��A����
��Hr$r�r�r�rdz�, in f_with_binary_operator
        (b  # test +
        ~~~~~~~~~~~~
            )  \
            ~~~~
        # +
        ~~~
    << (c  # test
    ^^~~~~~~~~~~~
        \
        ~
    )  # test
    ~
r�r�s     r"�2test_caret_for_binary_operators_multiline_two_char�VTracebackErrorLocationCaretTestBase.test_caret_for_binary_operators_multiline_two_char�s���	�*�2�2�A�A��
��j���);�);�(<�=� �j���!���5�	
�	�&�)�)�*@�A������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��SnSU-nU$)Nreu
ááááár�)rrs  r"r��zTracebackErrorLocationCaretTestBase.test_caret_for_binary_operators_multiline_with_unicode.<locals>.f_with_binary_operator�s���A����A��Hr$r�r�r�rgug, in f_with_binary_operator
    a = ("ááá" +
        ~~~~~~~~
        "áá") + b
        ~~~~~~^~~
r�r�s     r"�6test_caret_for_binary_operators_multiline_with_unicode�ZTracebackErrorLocationCaretTestBase.test_caret_for_binary_operators_multiline_with_unicode�s���	�*�2�2�A�A��
��j���);�);�(<�=� �j���!���5"�	
"�	��)�)�*@�A������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc�$�SSS00nUSSS$�N�xrk�zr���	some_dicts r"�f_with_subscript�VTracebackErrorLocationCaretTestBase.test_caret_for_subscript.<locals>.f_with_subscript�s$���s�D�k�*�I��S�>�#�&�s�+�+r$r�r�r�rgz^, in f_with_subscript
    return some_dict['x']['y']['z']
           ~~~~~~~~~~~~~~~~~~~^^^^^
r��r9rr�r�r�s     r"�test_caret_for_subscript�<TracebackErrorLocationCaretTestBase.test_caret_for_subscript�s���	,�$�,�,�;�;��
��j���);�);�(<�=� �j���!���54�	
4�	��)�)�*:�;������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc�2�SSSSS0000nUSSSS$)N�ó�á�í�thetare�betar�r	s r"r�^TracebackErrorLocationCaretTestBase.test_caret_for_subscript_unicode.<locals>.f_with_subscript�s3����t�g�q�\�&:�;�<�I��T�?�4�(��.�v�6�6r$r�r�r�rguq, in f_with_subscript
    return some_dict['ó']['á']['í']['beta']
           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
r�r
s     r"� test_caret_for_subscript_unicode�DTracebackErrorLocationCaretTestBase.test_caret_for_subscript_unicode�s���	7�$�,�,�;�;��
��j���);�);�(<�=� �j���!���5<�	
<�	��)�)�*:�;������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��/nS=pXU-$�Nrer�r�s   r"r��xTracebackErrorLocationCaretTestBase.test_caret_for_subscript_with_spaces_and_parenthesis.<locals>.f_with_binary_operator�s���A��I�A��?�Q�&�&r$r�r�r�r~zV, in f_with_binary_operator
    return b     [    a  ] + c
           ~~~~~~^^^^^^^^^
r�r�s     r"�4test_caret_for_subscript_with_spaces_and_parenthesis�XTracebackErrorLocationCaretTestBase.test_caret_for_subscript_with_spaces_and_parenthesis�s���	'�
*�2�2�A�A��
��j���);�);�(<�=� �j���!���5+�	
+�	��)�)�*@�A������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc�"�0nSnSnUUU-nU$)Nrergr�)�bbbbb�ccc�dddrs    r"r�`TracebackErrorLocationCaretTestBase.test_caret_for_subscript_multiline.<locals>.f_with_subscripts-���E��C��C������A��Hr$r�r�r�rdz�, in f_with_subscript
    b = bbbbb \
        ~~~~~~~
        [  ccc # test
        ^^^^^^^^^^^^^
    
    
         + ddd  \
         ^^^^^^^^
    
    
        ] # test
        ^
r�r
s     r"�"test_caret_for_subscript_multiline�FTracebackErrorLocationCaretTestBase.test_caret_for_subscript_multiline�s���
	�$�,�,�;�;��
��j���);�);�(<�=� �j���!���5�	
�	�&�)�)�*:�;������'@�'@�'B�Cr$c
��SnURRnS[SURS[SUS-S[SUS-S3
nUR	U5nURXCR
55 g)	Nc�0�SnU"S5"S5"S5$)Nc��SnU$)Nc��[S5e�Nr���RuntimeError�rs r"�f2�dTracebackErrorLocationCaretTestBase.test_caret_for_call.<locals>.f_with_call.<locals>.f1.<locals>.f2&�
��&�v�.�.r$r��rr0s  r"�f1�XTracebackErrorLocationCaretTestBase.test_caret_for_call.<locals>.f_with_call.<locals>.f1%���/��	r$rrkrr��r4s r"�f_with_call�LTracebackErrorLocationCaretTestBase.test_caret_for_call.<locals>.f_with_call$s��
��c�7�3�<��$�$r$r�r�r�rzN, in f_with_call
    return f1("x")("y")("z")
           ~~~~~~~^^^^^
  File "r~�', in f2
    raise RuntimeError("fail")
r��r9r8r�r�r�s     r"�test_caret_for_call�7TracebackErrorLocationCaretTestBase.test_caret_for_call#s���	%��'�'�6�6��
��j���);�);�(<�=� �j���!���5� �j���!���5/�
/�	��)�)�+�6������'@�'@�'B�Cr$c
��SnURRnS[SURS[SUS-S[SUS-S3
nUR	U5nURXCR
55 g)	Nc�$�SnU"S5"S5$)Nc��SnU$)Nc��[S5er,r-r/s r"r0�lTracebackErrorLocationCaretTestBase.test_caret_for_call_unicode.<locals>.f_with_call.<locals>.f1.<locals>.f2=r2r$r�r3s  r"r4�`TracebackErrorLocationCaretTestBase.test_caret_for_call_unicode.<locals>.f_with_call.<locals>.f1<r6r$rrr�r7s r"r8�TTracebackErrorLocationCaretTestBase.test_caret_for_call_unicode.<locals>.f_with_call;s��
��d�8�D�>�!r$r�r�r�ruK, in f_with_call
    return f1("ó")("á")
           ~~~~~~~^^^^^
  File "r~r:r�r;s     r"�test_caret_for_call_unicode�?TracebackErrorLocationCaretTestBase.test_caret_for_call_unicode:s���	"��'�'�6�6��
��j���);�);�(<�=� �j���!���5� �j���!���5/�
/�	��)�)�+�6������'@�'@�'B�Cr$c
��SnURRnS[SURS[SUS-S[SUS-S3
nUR	U5nURXCR
55 g)	Nc��SnU"S5S-$)Nc��[S5er,r-r�s r"r��~TracebackErrorLocationCaretTestBase.test_caret_for_call_with_spaces_and_parenthesis.<locals>.f_with_binary_operator.<locals>.fSs
��"�6�*�*r$rrgr��r�s r"r��sTracebackErrorLocationCaretTestBase.test_caret_for_call_with_spaces_and_parenthesis.<locals>.f_with_binary_operatorRs��
+��c�$�q�(�(r$r�r�r�r~zb, in f_with_binary_operator
    return f     (    "x"  ) + 2
           ~~~~~~^^^^^^^^^^^
  File "rg�&, in f
    raise RuntimeError("fail")
r�r�s     r"�/test_caret_for_call_with_spaces_and_parenthesis�STracebackErrorLocationCaretTestBase.test_caret_for_call_with_spaces_and_parenthesisQs���	)�
*�2�2�A�A��
��j���);�);�(<�=� �j���!���5� �j���!���5/�
/�	��)�)�*@�A������'@�'@�'B�Cr$c
��SnURRnS[SURS[SUS-S[SUS-S3
nUR	U5nURXCR
55 g)	Nc�n^�"SS5mU4SjnU"S5RS5"S5"S5nU$)Nc��\rSrSrSrSrg)�aTracebackErrorLocationCaretTestBase.test_caret_for_call_multiline.<locals>.f_with_call.<locals>.Cihc��SnU$)Nc��[S5er,r-r/s r"r��nTracebackErrorLocationCaretTestBase.test_caret_for_call_multiline.<locals>.f_with_call.<locals>.C.y.<locals>.fjs
��*�6�2�2r$r�)r9rr�s   r"rk�cTracebackErrorLocationCaretTestBase.test_caret_for_call_multiline.<locals>.f_with_call.<locals>.C.yis��3��Hr$r�N)r�r�r�r�rkr�r�r$r"r�rShs��r$r�c�>�T"5$r=r�)rr�s �r"r�aTracebackErrorLocationCaretTestBase.test_caret_for_call_multiline.<locals>.f_with_call.<locals>.gms
����s�
r$rergr~rd)rk)rrr�s  @r"r8�VTracebackErrorLocationCaretTestBase.test_caret_for_call_multiline.<locals>.f_with_callgs>���
�
�

��1����������A��Hr$r�r�r��zf, in f_with_call
    a = (g(1).y)(
        ~~~~~~~~~
        2
        ~
    )(3)(4)
    ~^^^
  File "rdrMr�r;s     r"�test_caret_for_call_multiline�ATracebackErrorLocationCaretTestBase.test_caret_for_call_multilinefs���	��'�'�6�6��
��j���);�);�(<�=� �j���!���5� �j���!���5/�
/�	��)�)�+�6������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��SnUS-
ng�Nre�aar��rs r"r��>TracebackErrorLocationCaretTestBase.test_many_lines.<locals>.f�s���A����Qr$r�r�r�rgzW, in f
    if True: x += (
             ^^^^^^
    ...<2 lines>...
    )  # test
    ^
r��r9r�r�r�r�s     r"�test_many_lines�3TracebackErrorLocationCaretTestBase.test_many_lines�s}��	��:�:�,�,��
��j���);�);�(<�=� �j���!���5�		
�	��)�)�!�,������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc��SnUS-
ngr`r�rbs r"r��GTracebackErrorLocationCaretTestBase.test_many_lines_no_caret.<locals>.f�s���A�
��
�Ar$r�r�r�rgz,, in f
    x += (
    ...<2 lines>...
    )
r�rds     r"�test_many_lines_no_caret�<TracebackErrorLocationCaretTestBase.test_many_lines_no_caret�s}��	��:�:�,�,��
��j���);�);�(<�=� �j���!���5�	
�	��)�)�!�,������'@�'@�'B�Cr$c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc�*�SnSnUU-UU-U--nU$)Nrerr�r�s   r"r��]TracebackErrorLocationCaretTestBase.test_many_lines_binary_op.<locals>.f_with_binary_operator�s:���A��A���������	�A��Hr$r�r�r�r~z�, in f_with_binary_operator
    a = (
        ~
        b +
        ~~~
        b
        ~
    ) + (
    ~~^~~
        c +
        ~~~
    ...<2 lines>...
    )
    ~
r�r�s     r"�test_many_lines_binary_op�=TracebackErrorLocationCaretTestBase.test_many_lines_binary_op�s���	�*�2�2�A�A��
��j���);�);�(<�=� �j���!���
5�	
�	�(�)�)�*@�A������'@�'@�'B�Cr$c	��[S[S5n[[S5nURS5 SSS5 UR	[
[5 [
[U5nURU5nURnS[SURS[SUS3	nURXFR55 g!,(df   N�=f)	Nz1 / 0 / 1 / 2
rKr�z1 $ 0 / 1 / 2
r�r�r�z*, in <module>
    1 $ 0 / 1 / 2
    ^^^^^
)rMr
r�r��
addCleanuprrrKr�r�r�r�rnr�)r9�bytecoderWrDr�r�r�s       r"�/test_traceback_specialization_with_syntax_error�STracebackErrorLocationCaretTestBase.test_traceback_specialization_with_syntax_error�s����,�f�f�=��
�&�#�
�$��J�J�(�)��	
�����'��t�X�&���)�)�$�/���*�*��
��j���);�);�(<�=��h�h�x�j�1�	
�	�	
����'@�'@�'B�C�%�
�s�C�
Cc���Sn[U[S5n[[S5nURU5 SSS5 UR	[
[5 [
[U5nURU5nURnS[SURS[SUSUSS	[S
5-S-S3
nURXWR55 g!,(df   N�=f)
Na	if True: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarKr�r�r�r�z, in <module>
    z
    � z	if True: a^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ri)rMr
r�r�rrrrrKr�r�r�r�rornr�)r9rMrsrWrDr�r�r�s        r"�test_traceback_very_long_line�ATracebackErrorLocationCaretTestBase.test_traceback_very_long_line�s���(���6�6�6�2��
�&�#�
�$��J�J�v��������'��t�X�&���)�)�$�/���*�*��
��j���);�);�(<�=��h�h�x�j�1��(���s�;�'�'�'�1�2�"�

6�	�	
����'@�'@�'B�C�#�
�s�C�
C)c	���SnURRnS[SURS[SUS-S3	nUR	U5nURXCR
55 g)Nc�&�SSS00nUSSS grr�r	s r"r�]TracebackErrorLocationCaretTestBase.test_secondary_caret_not_elided.<locals>.f_with_subscripts!���s�D�k�*�I��c�N�3���$r$r�r�r�rgzP, in f_with_subscript
    some_dict['x']['y']['z']
    ~~~~~~~~~~~~~~~~~~~^^^^^
r�r
s     r"�test_secondary_caret_not_elided�CTracebackErrorLocationCaretTestBase.test_secondary_caret_not_elided	s���	%�$�,�,�;�;��
��j���);�);�(<�=� �j���!���5-�	
-�	��)�)�*:�;������'@�'@�'B�Cr$c	���SnS[SURS[SURRS-S3	nUR	U5nURX2R
55 g)Nc�B�[S[S5[S5/5e�Nr�rerg�r�rAr�r�r$r"rE�KTracebackErrorLocationCaretTestBase.test_caret_exception_group.<locals>.exc!s��)�$��A��	�!��0M�N�Nr$�C  + Exception Group Traceback (most recent call last):
  |   File "r�zE, in get_exception
  |     callable()
  |     ~~~~~~~~^^
  |   File "reaB, in exc
  |     if True: raise ExceptionGroup("eg", [ValueError(1), TypeError(2)])
  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  | ExceptionGroup: eg (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 1
    +---------------- 2 ----------------
    | TypeError: 2
)r�r�r�r�r�rnr�)r9rEr�r�s    r"�test_caret_exception_group�>TracebackErrorLocationCaretTestBase.test_caret_exception_groups{��
	O��$�:�X�d�.@�.@�-A�B�%�:�X�c�l�l�.I�.I�A�.M�-N�O$�	%�	��)�)�#�.������'@�'@�'B�Cr$c�p�URU5nUSnURUR5U5 g)Nr)r�rn�lstrip)r9rD�expected_specializationr��specialization_lines     r"�assertSpecialized�5TracebackErrorLocationCaretTestBase.assertSpecialized5s8���)�)�$�/��*�2�.�����,�3�3�5�7N�Or$c�>�URSS5 URSS5 URSS5 URSS5 URSS5 URS	S5 URS
S5 URSS5 URS
S5 URSS5 URSS5 URSS5 URSS5 URSS5 URSS5 g)Nc��SS-$r�r�r�r$r"r#�TTracebackErrorLocationCaretTestBase.test_specialization_variations.<locals>.<lambda>;s��q��sr$z~^~c��SS-S-$�Nrerr~r�r�r$r"r#r�=s��q��s�1�ur$c��SS-$r�r�r�r$r"r#r�?���q�1�ur$z~~^~~c��SS-S-$r�r�r�r$r"r#r�As��q�1�u�q�yr$c��SS-$r�r�r�r$r"r#r�C���q�!�tr$z~^~~c��SS-S-$r�r�r�r$r"r#r�Es��q�!�t�A�vr$c��SS-$r�r�r�r$r"r#r�Gs��q�q�yr$z	~~~~~^~~~c��SS-S-$)Nrerrr�r�r$r"r#r�Is��q�q�y�Q�r$c��SS-$r�r�r�r$r"r#r�Kr�r$z~~^~c��SS-$r�r�r�r$r"r#r�Mr�r$z~^^~c��SS-S-$�Nrerrdr�r�r$r"r#r�Os��q�!�t�Q�wr$c��SS-$r�r�r�r$r"r#r�Qs��q�A�vr$z~~^^~~c��SS-S-$r�r�r�r$r"r#r�Ss��q�A�v��{r$c��SS-$r�r�r�r$r"r#r�Ur�r$z~~^^~c��SS-$r�r�r�r$r"r#r�Wr�r$z~^^~~)r�rNs r"�test_specialization_variations�BTracebackErrorLocationCaretTestBase.test_specialization_variations:s#�����{�&+�	-����}�&+�	-����}�&-�	/����0�&-�	/����|�&,�	.����~�&,�	.����0�&1�	3����6�&1�	3����|�&,�	.����|�&,�	.�����&,�	.����~�&.�	0����2�&.�	0����}�&-�	/����}�&-�	/r$c
�8^^	�SmSm	UU	4SjnURU5nURRnTRRnS[SURS[SUS-S[SUS-S	3
nURX%R
55 UU	4S
jnURU5nURRnS[SURS[SUS-S[SUS-S	3
nURX%R
55 g)Nc��[er=r�rDs r"�	dec_error�`TracebackErrorLocationCaretTestBase.test_decorator_application_lineno_correct.<locals>.dec_error[s���Or$c��U$r=r�r�s r"�dec_fine�_TracebackErrorLocationCaretTestBase.test_decorator_application_lineno_correct.<locals>.dec_fine]s���Kr$c� >�TTS55ng)Nc��gr=r�r�r$r"r�kTracebackErrorLocationCaretTestBase.test_decorator_application_lineno_correct.<locals>.applydecs.<locals>.g`s��r$r�)rr�r�s ��r"�	applydecs�`TracebackErrorLocationCaretTestBase.test_decorator_application_lineno_correct.<locals>.applydecs_s���
�
����r$r�r�r�rez5, in applydecs
    @dec_error
     ^^^^^^^^^
  File "z#, in dec_error
    raise TypeError
c�.>�TT"SS555ng)Nc��\rSrSrSrg)�qTracebackErrorLocationCaretTestBase.test_decorator_application_lineno_correct.<locals>.applydecs_class.<locals>.Aitr�N�r�r�r�r�r�r�r$r"r�r�ts��r$r�r�)r�r�r�s ��r"�applydecs_class�fTracebackErrorLocationCaretTestBase.test_decorator_application_lineno_correct.<locals>.applydecs_classss���
�
��M���r$z;, in applydecs_class
    @dec_error
     ^^^^^^^^^
  File ")r�r�r�r�r�rnr�)
r9r�r��lineno_applydescs�lineno_dec_errorr�r��lineno_applydescs_classr�r�s
        @@r"�)test_decorator_application_lineno_correct�MTracebackErrorLocationCaretTestBase.test_decorator_application_lineno_correctZsU���	�	�	��)�)�)�4��%�.�.�=�=��$�-�-�<�<��
��j���);�);�(<�=� �j��):�Q�)>�(?�@� �j��)9�A�)=�(>�?$�
$�	�	
����'@�'@�'B�C�	��)�)�/�:��"1�":�":�"I�"I��
��j���);�);�(<�=� �j��)@�1�)D�(E�F� �j��)9�A�)=�(>�?$�
$�	�	
����'@�'@�'B�Cr$c	���SnURU5nSS[SURS3SSS[SURRS-S	3S
S/nURX#5 g)Nc�$�SR5 gr=��methodr�r$r"r��KTracebackErrorLocationCaretTestBase.test_multiline_method_call_a.<locals>.f�s��
���r$�"Traceback (most recent call last):rNr��, in get_exception�    callable()�    ~~~~~~~~^^rg�, in fz    .methodz     ^^^^^^�r�r�r�r�r�rn�r9r��actualrFs    r"�test_multiline_method_call_a�@TracebackErrorLocationCaretTestBase.test_multiline_method_call_a�s{��	��#�#�A�&��0���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P���
��	
����*r$c	���SnURU5nSS[SURS3SSS[SURRS-S	3S
/nURX#5 g)Nc�$�SR5 gr=r�r�r$r"r��KTracebackErrorLocationCaretTestBase.test_multiline_method_call_b.<locals>.f�s��
���r$r�rNr�r�r�r�rgr�z
    methodr�r�s    r"�test_multiline_method_call_b�@TracebackErrorLocationCaretTestBase.test_multiline_method_call_b�sx��	��#�#�A�&��0���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P��

��	
����*r$c	���SnURU5nSS[SURS3SSS[SURRS-S	3S
S/nURX#5 g)Nc�$�SR5 gr=r�r�r$r"r��KTracebackErrorLocationCaretTestBase.test_multiline_method_call_c.<locals>.f�s��
��&�r$r�rNr�r�r�r�rgr�z    . methodz      ^^^^^^r�r�s    r"�test_multiline_method_call_c�@TracebackErrorLocationCaretTestBase.test_multiline_method_call_c�s{��	��#�#�A�&��0���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P���
��	
����*r$c	���SnURU5nSS[SURS3SSS[SURRS-S	3S
/nURX#5 g)Nc��[ gr=��widthr�r$r"r��hTracebackErrorLocationCaretTestBase.test_wide_characters_unicode_with_problematic_byte_offset.<locals>.f�s��r$r�rNr�r�r�r�rer�u    widthr�r�s    r"�9test_wide_characters_unicode_with_problematic_byte_offset�]TracebackErrorLocationCaretTestBase.test_wide_characters_unicode_with_problematic_byte_offset�sx��	��#�#�A�&��0���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P�!�

��	
����*r$c	���SnURU5nSS[SURS3SSS[SURRS-S	3S
/nURX#5 g)Nc��Sn[U5err�r�s r"r��[TracebackErrorLocationCaretTestBase.test_byte_offset_with_wide_characters_middle.<locals>.f�s���O��_�-�-r$r�rNr�r�r�r�rgr�u%    raise ValueError(width)r�r�s    r"�,test_byte_offset_with_wide_characters_middle�PTracebackErrorLocationCaretTestBase.test_byte_offset_with_wide_characters_middle�sx��	.��#�#�A�&��0���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P�3�

��	
����*r$c	���SnURU5nSS[SURS3SSS[SURRS-S	3S
SSS
/	nURX#5 g)Nc�0�SnSn[SU"U55 gr���print)�www�ths  r"r��ITracebackErrorLocationCaretTestBase.test_byte_offset_multiline.<locals>.f�s ���I��F��!�Y���
r$r�rNr�r�r�r�rdr�u    print(1, www(z             ~~~~~~^u            th))z            ^^^^^r�r�s    r"�test_byte_offset_multiline�>TracebackErrorLocationCaretTestBase.test_byte_offset_multiline�s���	��#�#�A�&��0���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P�%�"�"��

��	
����*r$c	���SnURU5nSS[SURS3SSS[SURRS-S	3S
S/nURX#5 g)Nc��SnSnX-$r�r�)�说明说明�şçöğıĤellös  r"r��cTracebackErrorLocationCaretTestBase.test_byte_offset_with_wide_characters_term_highlight.<locals>.f�s���L� !���3�3r$r�rNr�r�r�r�r~r�u+    return 说明说明 / şçöğıĤellöz            ~~~~~~~~~^~~~~~~~~~~~r�r�s    r"�4test_byte_offset_with_wide_characters_term_highlight�XTracebackErrorLocationCaretTestBase.test_byte_offset_with_wide_characters_term_highlight�s{��	4�
�#�#�A�&��0���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P�9�.�
��	
����*r$c	���SnURU5nSS[SURS3SSS[SURRS-S	3S
S/nURX#5 g)Nc�&�S[SS5-S-$)Nu✨🐍u📗🚛�🐍)�func_说明说明r�r$r"r��ZTracebackErrorLocationCaretTestBase.test_byte_offset_with_emojis_term_highlight.<locals>.fs$���0��� ��$�%�
%r$r�rNr�r�r�r�rer�u4    return "✨🐍" + func_说明说明("📗🚛",z!                    ^^^^^^^^^^^^^r�r�s    r"�+test_byte_offset_with_emojis_term_highlight�OTracebackErrorLocationCaretTestBase.test_byte_offset_with_emojis_term_highlights{��	%��#�#�A�&��0���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P�B�/�
��	
����*r$c	���SnURU5nSS[SURS3SSS[SURRS-S	3S
S/nURX#5 g)Nc�4�SSSS000nUSSSSS$)Nu
✨🚛✨u说明u🐍🐍🐍r�u🐍🐍r�)�my_dcts r"r��TTracebackErrorLocationCaretTestBase.test_byte_offset_wide_chars_subscript.<locals>.fs?����&�����F��,�'��1�&�9�(�C�J�O�Or$r�rNr�r�r�r�r[r�uG    return my_dct["✨🚛✨"]["说明"]["🐍"]["说明"]["🐍🐍"]z)           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^r�r�s    r"�%test_byte_offset_wide_chars_subscript�ITracebackErrorLocationCaretTestBase.test_byte_offset_wide_chars_subscripts|��	P��#�#�A�&��0���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P�U�7�
��	
����*r$c	���SnURU5nSS[SURS3SSS[SURRS-S	3S
/nURX#5 g)Nc��[5er=)�MemoryErrorr�r$r"r��@TracebackErrorLocationCaretTestBase.test_memory_error.<locals>.f)s
���-�r$r�rNr�r�r�r�rer�z    raise MemoryError()r�r�s    r"�test_memory_error�5TracebackErrorLocationCaretTestBase.test_memory_error(sx��	 ��#�#�A�&��8��x�j���);�);�(<�<N�O����x�j�����)B�)B�Q�)F�(G�v�N�%�'��	
����*r$c�^�SmU4SjnURU5nSS[SURS3SSS[SURRS	-S
3SS[STRRS	-S3S
S/	nURX#5 SmU4SjnURU5nSS[SURS3SSS[SURRS	-S
3SSS[STRRS	-S3S
S/
nURX#5 SmU4SjnURU5nSS[SURS3SSS[SURRS	-S
3SSSS[STRRS	-S3S
S/nURX#5 SmU4SjnURU5nSS[SURS3SSS[SURRS	-S
3SSSSSSS[STRRS	-S3S
S/nURX#5 g)Nc��SS- gr�r�r�r$r"r�cTracebackErrorLocationCaretTestBase.test_anchors_for_simple_return_statements_are_elided.<locals>.g6�	��
�a�Cr$c�>�T"5$r=r��rs�r"r��cTracebackErrorLocationCaretTestBase.test_anchors_for_simple_return_statements_are_elided.<locals>.f9s
����3�Jr$r�rNr�r�r�r�rer�z    return g()�, in g�    1/0�    ~^~c��SS- gr�r�r�r$r"rrIrr$c�>�T"5S-$rr�r	s�r"r�r
Ls����3��7�Nr$z    return g() + 1z           ~^^c��SS- gr�r���argss r"rr]rr$c�>�T"SSSS5$�Nrergrdrr�r	s�r"r�r
`s����Q�����
r$z    return g(1,z             2, 4,z             5)c��SS- gr�r�rs r"rrtrr$c� >�T"SSSS5S-$rr�r	s�r"r�r
ws"����Q�������
r$z           ~^^^z             ^^^^^z             5) + 1z             ^^r��r9r�r�rFrs    @r"�4test_anchors_for_simple_return_statements_are_elided�XTracebackErrorLocationCaretTestBase.test_anchors_for_simple_return_statements_are_elided5s����	�	��)�)�!�,��8���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P����z��1�:�:�+D�+D�q�+H�*I��P���	
��	
����0�	�	��)�)�!�,��8���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P� ����z��1�:�:�+D�+D�q�+H�*I��P���

��	
����0�	�	�
�)�)�!�,��8���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P�� ����z��1�:�:�+D�+D�q�+H�*I��P���
��	
����0�	�	�
�)�)�!�,��8���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P��� � �!����z��1�:�:�+D�+D�q�+H�*I��P���
��	
����0r$c�^�SmU4SjnURU5nSS[SURS3SSS[SURRS	-S
3SS[STRRS	-S3S
S/	nURX#5 SmU4SjnURU5nSS[SURS3SSS[SURRS	-S
3SSSS[STRRS	-S3S
S/nURX#5 SmU4SjnURU5nSS[SURS3SSS[SURRS	-S
3SSS[STRRS	-S3S
S/
nURX#5 SmU4SjnURU5nSS[SURS3SSS[SURRS	-S
3SSSSSSS[STRRS	-S3S
S/nURX#5 g) Nc��SS- gr�r�r�r$r"r�cTracebackErrorLocationCaretTestBase.test_anchors_for_simple_assign_statements_are_elided.<locals>.g�rr$c�>�T"5ngr=r��rrs �r"r��cTracebackErrorLocationCaretTestBase.test_anchors_for_simple_assign_statements_are_elided.<locals>.f�s
�����Ar$r�rNr�r�r�r�rer�z    x = g()rrr
c��SS- gr�r�rs r"rr�rr$c�>�T"SSSS5ng�Nrergr~rdr�rs �r"r�r�s����!��Q���Ar$z    x = g(1,z          2, 3,z          4)c��SS- gr�r�r�r$r"rr�rr$c�>�T"5=pgr=r��rrkrs  �r"r�r�s����C�K�A�r$z    x = y = g()z            ~^^c��SS- gr�r�rs r"rr�rr$c�>�T"SSSS5=pgr"r�r%s  �r"r�r�s����a�����
�A�r$z    x = y = g(1,z            ~^^^z              2, 3,z              ^^^^^z              4)z              ^^r�rs    @r"�4test_anchors_for_simple_assign_statements_are_elided�XTracebackErrorLocationCaretTestBase.test_anchors_for_simple_assign_statements_are_elided�s����	�	��)�)�!�,��8���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P����z��1�:�:�+D�+D�q�+H�*I��P���	
��	
����0�	�	�
�)�)�!�,��8���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P������z��1�:�:�+D�+D�q�+H�*I��P���
��	
����0�	�	��)�)�!�,��8���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P�����z��1�:�:�+D�+D�q�+H�*I��P���

��	
����0�	�	�
�)�)�!�,��8���z��4�+=�+=�*>�>P�Q�����z��1�:�:�+D�+D�q�+H�*I��P���!�!�����z��1�:�:�+D�+D�q�+H�*I��P���
��	
����0r$r�N)1r�r�r�r��__doc__r�r�r�r�r�r�r�r�r�r�r�r�rrrrr&r<rErNr\rerjrortrxr}r�r�r�r�r�r�r�r�r�r�r�r�r�rrr(r�r�r$r"r�r�|s���@�&@�&@�$@�2>@�@@�0D�$D�$D�$D�&D�4#D�JD�,D�$D�$D�&"D�HD�.D�.D�*D�BD�0D�,$D�LD�.D�.D�&D�2P�
/�@*D�X+�"+� +�"
+� +� +�,+�$+�"+�.+�W1�rW1r$r�c��\rSrSrSrSrg)�"PurePythonTracebackErrorCaretTestsi��h
Same set of tests as above using the pure Python implementation of
traceback printing in traceback.py.
r�N�r�r�r�r�r*r�r�r$r"r,r,�s��r$r,c��\rSrSrSrSrg)�CPythonTracebackErrorCaretTestsi��K
Same set of tests as above but with Python's internal traceback printing.
r�Nr.r�r$r"r0r0����r$r0c��\rSrSrSrSrg)�%CPythonTracebackLegacyErrorCaretTestsizR
Same set of tests as above but with Python's legacy internal traceback printing.
r�Nr.r�r$r"r4r4r2r$r4c��\rSrSrSrSrSrSr\SSj5r	Sr
S	rS
rSr
Sr\"5S
5rSr\S5rSr\S5rSr\S5rSrSrg)�TracebackFormatMixiniTc��[S5e)N�blah)�KeyErrorrNs r"�some_exception�#TracebackFormatMixin.some_exceptions
���v��r$c��UVs/sH-n[UR55[S5::aM+UPM/ sn$s snf)Nz^~)�setrq)r9rF�lines   r"�_filter_debug_ranges�)TracebackFormatMixin._filter_debug_rangess0��!)�P����T�Z�Z�\�1B�c�$�i�1O���P�P��Ps�*<�<c�J�UR(dURU5$U$r=)�DEBUG_RANGESr?)r9rFs  r"�_maybe_filter_debug_ranges�/TracebackFormatMixin._maybe_filter_debug_rangess!��� � ��,�,�X�6�6��r$Nc��SSKJn UR5 [S5e![GannUR
nUbU"UR5 SSR[R"U55-nSRURUR555S-n[5nU"XF5 UR5n[S5n[R"U5 SSS5 O!,(df   O=f[5n	[R"XIS9 [S5n
[R "5 SSS5 O!,(df   O=f[R""5n[5n[R "US9 SnAOSnAff=fUR%XW5 UR%WR5U	R55 UR%W
R5UR55 UR%X�R55 UR5n
U
SnUR%['U
5S	5 U
S
U
SnnUR)UR+S55 UR)UR+S
55 UR)UR+S55 g)Nr)�traceback_printz&unable to create test traceback stringz#Traceback (most recent call last):
rrir�rVr���r�	Tracebackrz	    raise)r�rFr:rr9rmr,r�rB�	format_tbr?r�rr[r�print_tbrtrurnrorpr)r9�cleanup_funcrFr�r)�
traceback_fmt�file_�
python_fmtr��tbfile�	excstderr�excfmtrw�tb_lines�banner�location�source_lines                 r"�check_traceback_format�+TracebackFormatMixin.check_traceback_formats)��-�	B����!�6�@�A�A��5�	.����B��'��R�Z�Z�(�B��G�G�I�$7�$7��$;�<�=�M�!�I�I��)�)�-�*B�*B�*D�E����M��J�E��B�&��.�.�*�J� ��*�h��"�"�2�&�+�*�*���Z�F����r�/� ��*�i��#�#�%�+�*�*���)�)�+�F��j�G����W�-��1	.��:	
����3�����*�*�,�f�o�o�.?�@�����+�+�-�w�/?�/?�/A�B�����!1�!1�!3�4��(�(�*���!�������X���*� (���h�r�l�+������)�)�+�6�7�����+�+�H�5�6�����.�.�{�;�<sE�#�F�B'F�C5�,	F�5
D	�?0F�/E�	F�
E	�:F�Fc�$�UR5 gr=�rVrNs r"�test_traceback_format�*TracebackFormatMixin.test_traceback_formatNs���#�#�%r$c�,�SnURU5 g)Nc�8�URR5 gr=)r*�clearrjs r"�
cleanup_tb�RTracebackFormatMixin.test_traceback_format_with_cleared_frames.<locals>.cleanup_tbSs���K�K���r$rY)r9r_s  r"�)test_traceback_format_with_cleared_frames�>TracebackFormatMixin.test_traceback_format_with_cleared_framesQs��	 ��#�#�J�/r$c��[S5n[R"[R"S55 SSS5 [5n[R"[R"S5US9 UR
WR5UR55 [R"[R"S55nUR
UR5SRU55 g!,(df   N�=f)Nr�rerVr)
rrB�print_stackr;�	_getframerrnr[�format_stackr�)r9�ststderr�stfile�stfmts    r"�test_stack_format�&TracebackFormatMixin.test_stack_formatWs����X�
&�(��!�!�#�-�-��"2�3�'�������c�m�m�A�.�V�<�����*�*�,�f�o�o�.?�@��&�&�s�}�}�Q�'7�8������*�*�,�b�g�g�e�n�=�'�
&�s�+C:�:
Dc	�(�Sn[S5nU"5 SSS5 URRnURWR	5R5SSS[US-4-SS[US-4-S	/5 g!,(df   Nr=f)
Nc�.�[R"5 gr=)rBrdr�r$r"�prn�2TracebackFormatMixin.test_print_stack.<locals>.prnes���!�!�#r$r����z)  File "%s", line %d, in test_print_stackr~z	    prn()z  File "%s", line %d, in prnrez    traceback.print_stack())rr�r�rnr[r�r�)r9rnr�rs    r"�test_print_stack�%TracebackFormatMixin.test_print_stackds���	$�
�X�
&�&��E�'����,�,��������*�5�5�7���<�7�8�V�A�X�:N�N��*�h��q��-A�A�)�	?
�	�'�
&�s�B�
Bc�b^^^�SUlU4Sjm[S5nT"5 URS5 SSS5 TRR
nS[SUS-S[SUS-S	[SUS-S	[SUS-S
3nURUR55nWR5R5nURUSSUSS5 URUSUS5 URUSUS5 [R"5nUR[[ R""S
US5R%55['US-
U55 S$U4Sjjm[S5nT"5 URS5 SSS5 TRR
n	S[SU	S-S[SU	S-S[SU	S-S[SU	S-S3n
S[SU	S-S3nURX�-R55nWR5R5nURXe5 S$UU4Sjjm[S5nT"5 URS5 SSS5 TRR
n
S[SU
S-S[SU
S-S[SU
S-S[SU
S-S[SU
S-S3nURX�-R55nWR5R5nURXe5 [S5nT"[*R,5 URS5 SSS5 S[SU	S-S[SU	S-S[SU	S-S[SU	S-S3n
S[SU	S-S 3nURX�-R55nUR5R5nURXe5 [S5nT"[*R,S-5 URS5 SSS5 S[SU	S-S[SU	S-S[SU	S-S![SU	S-S3n
S[SU	S"-S#3nURX�-R55nUR5R5nURXe5 g![a U"5 GN�f=f!,(df   GN�=f![(a U"5 GN}f=f!,(df   GN�=f![(a U"5 GN�f=f!,(df   GN�=f![(a U"5 GNf=f!,(df   GN=f![(a U"5 GN\f=f!,(df   GNg=f)%Nc�>�T"5 gr=r�rKs�r"r��BTracebackFormatMixin._check_recursive_traceback_display.<locals>.fys���
�Cr$r�zno recursion occurredr�r�rz@, in _check_recursive_traceback_display
    f()
    ~^^
  File "rez, in f
    f()
    ~^^
  File "zv, in f
    f()
    ~^^
  \[Previous line repeated (\d+) more times\]
RecursionError: maximum recursion depth exceeded
rGrz\d+�<c�:>�U(aT"US-
5S-$[err�)rtrs �r"r�BTracebackFormatMixin._check_recursive_traceback_display.<locals>.g�s������q��z�A�~�%��r$zno value error was raisedrNrgz?, in g
    return g(count-1) + 1
           ~^^^^^^^^^
  File "zg, in g
    return g(count-1) + 1
           ~^^^^^^^^^
  [Previous line repeated 7 more times]
  File "r~z', in g
    raise ValueError
ValueError
�z8, in _check_recursive_traceback_display
    g()
    ~^^
c�8>�U(aT"US-
5$T"5 grr�)rtr�hs ��r"r{�BTracebackFormatMixin._check_recursive_traceback_display.<locals>.h�s������q��z�!�
�Cr$z@, in _check_recursive_traceback_display
    h()
    ~^^
  File "z%, in h
    return h(count-1)
  File "zM, in h
    return h(count-1)
  [Previous line repeated 7 more times]
  File "z, in h
    g()
    ~^^
zno error raised�Mzn, in _check_recursive_traceback_display
    g(traceback._RECURSIVE_CUTOFF)
    ~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
zf, in g
    return g(count-1) + 1
           ~^^^^^^^^^
  [Previous line repeated 1 more time]
  File "�mzv, in _check_recursive_traceback_display
    g(traceback._RECURSIVE_CUTOFF + 1)
    ~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)r�)�maxDiffrr��RecursionErrorr�r�r�rCr�r[rn�assertRegexrrr;�getrecursionlimitr��re�search�group�rangerArB�_RECURSIVE_CUTOFF)r9�
render_exc�stderr_fr��result_frFr��	rec_limit�stderr_g�lineno_g�result_g�tb_line�stderr_h�lineno_h�result_hr�rr{s               @@@r"�"_check_recursive_traceback_display�7TracebackFormatMixin._check_recursive_traceback_displayrs������	��X�
&�(�
3����	�	�1�2�
'��:�:�,�,��
��j���!���5� �j���!���5� �j���!���5� �j���!���5A�
A�	�,�2�2�8�3F�3F�3H�I���"�"�$�/�/�1��	
�������h�s��m�4�������X�b�\�2��
�
�h�r�l�F�2�J�/��)�)�+�	��
�
�c�"�)�)�F�F�2�J�7�=�=�?�@�%�	�RT��V_�B`�a�	�
�X�
&�(�
7����	�	�5�6�
'��:�:�,�,���x�j���!���5� �j���!���5� �j���!���5� �j���!���5�
�	� 
��j���!���5�
�	��2�2�G�4F�3R�3R�3T�U���"�"�$�/�/�1������*�	�	�
�X�
&�(�
7����	�	�5�6�
'��:�:�,�,��
��j���!���5� �j���!���5��j���!���5��j���!���5� �j���!���5�

�	� �2�2�H�4G�3S�3S�3U�V���"�"�$�/�/�1������*��X�
&�(�
-��)�-�-�.��	�	�+�,�
'��x�j���!���5� �j���!���5� �j���!���5� �j���!���5�
�	�
��j���"��
�63�
3�	��2�2�G�4F�3R�3R�3T�U���"�"�$�/�/�1������*��X�
&�(�
-��)�-�-��1�2��	�	�+�,�
'��x�j���!���5� �j���!���5� �j���!���5� �j���!���5�
�	� 
��j���#���77�
7�	��2�2�G�4F�3R�3R�3T�U���"�"�$�/�/�1������*��i"�
���
��'�
&��l�
���
��'�
&��V�
���
��'�
&��B�
���
��'�
&��F�
���
��'�
&�s��S7�S�S7�T!�T	�T!�)U�+T3�2U�U5�U�U5�V�V�.V�S4�0S7�3S4�4S7�7
T�	T�T!�T�T!�!
T0�3U�U�U�U�
U�U2�.U5�1U2�2U5�5
V�V�V�V�V�
V.c�^�UR(a UR[R5 gSSKJm U4SjnURU5 g)Nrr�c�<>�T"[R"55 gr=)r;�	exceptionr�s�r"r��ATracebackFormatMixin.test_recursive_traceback.<locals>.render_exc;s�����
�
��0r$)rBr�rBrtr�r�)r9r�r�s  @r"�test_recursive_traceback�-TracebackFormatMixin.test_recursive_traceback5s6�������3�3�I�4G�4G�H�1�
1��3�3�J�?r$c��SnU"5nURRnURUSSS[US-4-S[US-4-/5 g)Nc�,�[R"5$r=)rBrfr�r$r"�fmt�3TracebackFormatMixin.test_format_stack.<locals>.fmt@s���)�)�+�+r$rGz>  File "%s", line %d, in test_format_stack
    result = fmt()
rgzA  File "%s", line %d, in fmt
    return traceback.format_stack()
re)r�r�rnr�)r9r��resultrs    r"�test_format_stack�&TracebackFormatMixin.test_format_stack?se��	,�������,�,���������
#�&.��q��%9�
:�
4�7?����6J�
K�'
�	r$c�&�SSKJn "SS[5nU"S5nU"S5nXCe!Ua Ue!Ua
nUnSnAOSnAff=ff=f[S5nU"U5 SSS5 O!,(df   O=fWR	5R5R
5nURS[U55 UR[R5US	5 URS
US5 URSUS
5 g)Nrr�c��\rSrSrSrSrg)�ATracebackFormatMixin.test_unhashable.<locals>.UnhashableExceptioniOc��g�NTr��r9�others  r"�__eq__�HTracebackFormatMixin.test_unhashable.<locals>.UnhashableException.__eq__P���r$r�N�r�r�r�r�r�r�r�r$r"�UnhashableExceptionr�O���
r$r��ex1�ex2r��rzUnhashableException: ex2r~zUnhashableException: ex1r�)r�r�r�rr[rqr�rnro�context_messagerr)	r9r�r�r�r�r��exc_valr�r)s	         r"�test_unhashable�$TracebackFormatMixin.test_unhashableKs���-�	�)�	�"�%�(��!�%�(��	����"�	�
��	��&�
����
��	���X�
&�(��G�$�'�
&�
&���
�
�
 �
&�
&�
(�
3�
3�
5������S��W�%�����.�.�0�"�Q�%�8��
�
�0�"�Q�%�8��
�
�0�"�R�&�9s4�)�A	�2�A�A�A	�A�A	�	A)�)
A7c�Z�[S5n[S5Hn[SU/5nM U$)Nre��r�)r�r�r�)r9r��is   r"�deep_eg�TracebackFormatMixin.deep_egfs,���a�L���t��A��t�a�S�)�A���r$c�p�SSKJn SnUR5n[S5n[R
"US9 U"U5 SSS5 SSS5 WR
5nURSU5 URURS5U5 g!,(df   NZ=f!,(df   Nc=f)Nrr��Kr���	max_depthr�)
r�r�r�rr�infinite_recursionr[rr�assertLessEqualrt)r9r��LIMITr�r�r2s      r"�(test_exception_group_deep_recursion_capi�=TracebackFormatMixin.test_exception_group_deep_recursion_capils���-���
�\�\�^��
�X�
&�(��+�+�e�<���#�=�'��"�"�$���
�
�&��/����V�\�\�*:�;�U�C�	=�<��'�
&�s"�B'�	B�B'�
B$	� B'�'
B5c��SnUR5n[S5n[R"US9 [R
"[
U5X"R5 SSS5 SSS5 WR5nURSU5 URURS5U5 g!,(df   NZ=f!,(df   Nc=f)Nr�r�r�r�)r�rrr�rBrZ�typermr[rrr�rt)r9r�r�r�r2s     r"�-test_exception_group_deep_recursion_traceback�BTracebackFormatMixin.test_exception_group_deep_recursion_tracebackxs�����
�\�\�^��
�X�
&�(��+�+�e�<��)�)�$�r�(�B�8H�8H�I�=�'��"�"�$���
�
�&��/����V�\�\�*:�;�U�C�	=�<��'�
&�s"�C�+B2�C�2
C	�<C�
Cc��SSKJn [S5n[R"5 U"S5 SSS5 SSS5 URWR
5S5 g!,(df   N7=f!,(df   N@=f)Nrr�r�rdzFTypeError: print_exception(): Exception expected for value, int found
)r�r�rr�catch_unraisable_exceptionrnr[)r9r�r�s   r"�"test_print_exception_bad_type_capi�7TracebackFormatMixin.test_print_exception_bad_type_capi�s^��-�
�X�
&�&��3�3�5���#�6�'�	
����O�O��9�	
�6�5��'�
&�s!�A3�	A"�A3�"
A0	�,A3�3
Bc��SnUR[U5 [R"S5 SSS5 g!,(df   g=f)Nz'Exception expected for value, int foundrd)rlr�rBrZ)r9�msgs  r"�$test_print_exception_bad_type_python�9TracebackFormatMixin.test_print_exception_bad_type_python�s1��7��
�
#�
#�I�s�
3��%�%�b�)�4�
3�
3�s	�9�
A)rr=)r�r�r�r�rBr:r?rCrrVrZrarjrqr�r
r�r�r�r�r�r�r�r�r�r�r$r"r6r6s����L��Q��
�/=��/=�b&�0�>��A+�F��@��@�
��:��:�4��	D��	D�D��	
��	
�*r$r6zG
The above exception was the direct cause of the following exception:

zF
During handling of the above exception, another exception occurred:

rl�|r�c��\rSrSrSrg)�TestTracebackFormati�r�Nr�r�r$r"r�r��s��r$r�c�@^�\rSrSrSrSU4SjjrSU4SjjrSrU=r$)�TestFallbackTracebackFormati�Fc�>�[RUlS[l[RUlS[l[TU]5$)Nc��gr=r�rs r"r#�3TestFallbackTracebackFormat.setUp.<locals>.<lambda>�s��4r$c��SS-$r�r�rs r"r#r��s���1�r$)r;�unraisablehook�original_unraisable_hookrB�_print_exception_bltin�
original_hookr3r4r8s �r"r4�!TestFallbackTracebackFormat.setUp�s;���(+�(:�(:��%�/���&�=�=���+<�	�(��w�}��r$c�t>�UR[lUR[l[TU]5$r=)r�rBr�r�r;r�r3r>r8s �r"r>�$TestFallbackTracebackFormat.tearDown�s-���+/�+=�+=�	�(�!�:�:����w��!�!r$)r�r�)r�N)	r�r�r�r�rBr4r>r�r�r�s@r"r�r��s����L��"�"r$r�c��\rSrSrSr\R
RS-rSrSr	Sr
SrSrS	r
S
rSrSrS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"Sr#S r$S!r%S"r&g#)$�BaseExceptionReportingTestsi�c�t�[U[5(aU$U"5 g![anUsSnA$SnAff=fr=)�
isinstancer�r�)r9�exception_or_callabler�s   r"r��)BaseExceptionReportingTests.get_exception�s6���+�]�;�;�(�(�	�!�#���	��H��	�s�!�
7�2�7�7rdc��SS- gr�r�rNs r"�zero_div�$BaseExceptionReportingTests.zero_div�s	��	�!�r$c�r�UR5n[5(a9URUSRS55 UR	SUS5 O8URUSRS55 UR	SUS5 URUSRS5US5 g)N���rz1/0 # In zero_divrGrprr�)r�rrprrr)r9r�r�s   r"�check_zero_div�*BaseExceptionReportingTests.check_zero_div�s������ ��� � ��O�O�E�"�I�0�0��:�;��M�M�-�u�R�y�9��O�O�E�"�I�0�0��:�;��M�M�-�u�R�y�9�����b�	�,�,�-@�A�5��9�Mr$c�P�SS- URW5R5n[5(a?UR	[U5S5 UR
USRS55 O>UR	[U5S5 UR
USRS55 UR
USRS55 UR
USRS55 URS	US
5 g![a
nUnSnAGNSnAff=f)Nrerrdr~r�rrHrz1/0 # Markerrg)	r��
get_reportr�rrnrorprrr�r9r!r�r�s    r"�test_simple�'BaseExceptionReportingTests.test_simple�s���	�
�a�C�����"�-�-�/��� � ����S��Z��+��O�O�E�!�H�/�/�0C�D�E����S��Z��+��O�O�E�!�H�/�/�0C�D�E�����a��+�+�K�8�9�����a��+�+�H�5�6��
�
�n�e�A�h�/��!�	��A��	�s�D�
D%�D � D%c�"^^�U4SjmU4Sjn[RTRU55nTR[	U5S5 TRUS[
5 TR
US5 TRSUS5 g)Nc�Z>�TR5 g![an[UeSnAff=fr=�r�r�r9)r�r9s �r"�inner_raise�;BaseExceptionReportingTests.test_cause.<locals>.inner_raise�s)���
&��
�
���$�
&��A�%��
&�s��
*�%�*c�>�T"5 gr=r��r�s�r"�outer_raise�;BaseExceptionReportingTests.test_cause.<locals>.outer_raise������Mr$r~rer�inner_raise() # Markerrg��
boundaries�splitr�rnro�
cause_messager�rr�r9r��blocksr�s`  @r"�
test_cause�&BaseExceptionReportingTests.test_cause�ss���	&�
	��!�!�$�/�/�+�">�?������V��a�(�������M�2����F�1�I�&��
�
�.��q�	�:r$c�"^^�U4SjmU4Sjn[RTRU55nTR[	U5S5 TRUS[
5 TR
US5 TRSUS5 g)Nc�P>�TR5 g![a [ef=fr=r�rNs�r"r��=BaseExceptionReportingTests.test_context.<locals>.inner_raise�s%���
��
�
���$�
���
�s��%c�>�T"5 gr=r�r�s�r"r��=BaseExceptionReportingTests.test_context.<locals>.outer_raise�r�r$r~rerr�rg)r�r�r�rnror�r�rrrs`  @r"�test_context�(BaseExceptionReportingTests.test_context�ss���	�
	��!�!�$�/�/�+�">�?������V��a�(�������O�4����F�1�I�&��
�
�.��q�	�:r$c���[e![a [Sef=f![anUnSnAOSnAff=fURU5R5nUR	[U5S5 UR
USRS55 UR
USRS55 UR
USRS55 URSUS	5 g)
Nrdr~r�rrHrerzZeroDivisionError from Nonerg)	r�r�r�r�rnrorprrrr�s    r"�test_context_suppression�4BaseExceptionReportingTests.test_context_suppression�s���	�
2�����
2�'�T�1�
2�� �	��A��	������"�-�-�/������U��Q�'�����a��+�+�,?�@�A�����a��+�+�K�8�9�����a��+�+�H�5�6��
�
�3�U�1�X�>s�	���
4�/�4c�"^^�U4SjmU4Sjn[RTRU55nTR[	U5S5 TRUS[
5 TR
US5 TRSUS5 g)Nc�>�TR5 [ g![anUnSnANSnAff=f![a [Wef=fr=)r�r��xyzzy�	NameErrorr9)�_er�r9s  �r"r��GBaseExceptionReportingTests.test_cause_and_context.<locals>.inner_raise
	sH���
��
�
��
&���%�
����
���
&��A�%�
&�s��4�
1�,�1�Ac�>�T"5 gr=r�r�s�r"r��GBaseExceptionReportingTests.test_cause_and_context.<locals>.outer_raise	r�r$r~rerr�rgr�rs`  @r"�test_cause_and_context�2BaseExceptionReportingTests.test_cause_and_context	ss���	&�	��!�!�$�/�/�+�">�?������V��a�(�������M�2����F�1�I�&��
�
�.��q�	�:r$c�v^^�U4SjmU4Sjn[RTRU55nTR[	U5S5 TRUS[
5 TR
SUS5 TRSUS5 TR
SUS	5 TRUS	5 g)
Nc�>�TR5 g![anUn[UeSnAff=f![anWUeSnAff=fr=r�)r�rr9s  �r"r��EBaseExceptionReportingTests.test_cause_recursive.<locals>.inner_raise	sK���
�*��M�M�O��(�*��A�"��)��*���
��Q���
�s"��
-�	(�-�0�
A�=�Ac�>�T"5 gr=r�r�s�r"r��EBaseExceptionReportingTests.test_cause_recursive.<locals>.outer_raise%	r�r$r~rezraise KeyError from erz1/0r�rg)	r�r�r�rnrorrr�assertNotInr�rs`  @r"�test_cause_recursive�0BaseExceptionReportingTests.test_cause_recursive	s����	�	��!�!�$�/�/�+�">�?������V��a�(�������M�2��
�
�-�v�a�y�9������q�	�*�	
�
�
�.��q�	�:����F�1�I�&r$c���SnURU5R5nURUSS5 SnURU5R5nURUSS5 g)Nc��[SS5e)Nr)rrr�hello)rmr�r$r"r��FBaseExceptionReportingTests.test_syntax_error_offset_at_eol.<locals>.e4	s���b�"5�6�6r$rGz	        ^c��[S5 g)Nzx = 5 | 4 |)rKr�r$r"r�r$8	s
����r$z               ^)r�r�rn�r9r�r�s   r"�test_syntax_error_offset_at_eol�;BaseExceptionReportingTests.test_syntax_error_offset_at_eol2	sc��	7��o�o�a� �+�+�-������R��+�.�	 ��o�o�a� �+�+�-������R��"4�5r$c���[S5nURU5R5nURUS/5 SUlURU5R5nURUSS/5 [S5nSUlURU5R5nURUS/5 SUlURU5R5nURUSS/5 g)Nr}zSyntaxError: bad syntax�dz  File "<string>", line 100z	myfile.pyz#SyntaxError: bad syntax (myfile.py)z  File "myfile.py", line 100)rmr�r�rnr�filenamer&s   r"�test_syntax_error_no_lineno�7BaseExceptionReportingTests.test_syntax_error_no_lineno=	s���
��%���o�o�a� �+�+�-������
&�'�	)�����o�o�a� �+�+�-������
*�,E�F�	H�
��%�� ��
��o�o�a� �+�+�-������
2�3�	5�����o�o�a� �+�+�-������
+�-F�G�	Ir$c�b�UR[S55nURSU5 UR[S55nURSU5 UR[55nURSU5 UR[S55nURSU5 g)NzException: None
�Nonez
Exception
r)r�r�rrrus  r"�test_message_none�-BaseExceptionReportingTests.test_message_noneV	s����o�o�i��o�.���
�
�)�3�/��o�o�i��/�0���
�
�)�3�/��o�o�i�k�*���
�
�m�S�)��o�o�i��m�,���
�
�m�S�)r$c�(�[SS5GH�nSGHvnSU-SU--nS/nUS:a#URSUR5-5 O�US	::amURSUR5-5 [S[	UR55U-
S-5nURS
SUS-
-<SU-<35 Oc[S[	UR55S-
5nURSUR5-5 URS
S
<SU-<35 URS5 URS5 UR[
SSSX-U455nSRU5nURXv5 GMy GM� g)N���r�)rrgrwztext%dz  File "file.py", line 1rez    %sr�    rfrdz     zSyntaxError: msgrr�zfile.pyri)	r��appendr��maxror�rmr�rn)r9�offset�addrBrF�caret_lengthrv�exps        r"�!test_syntax_error_various_offsets�=BaseExceptionReportingTests.test_syntax_error_various_offsetsa	sR���B��m�F����S�y�8�f�#4�4��6�7���A�:��O�O�H�t�{�{�}�$<�=��q�[��O�O�H�t�{�{�}�$<�=�#&�q�#�d�k�k�m�*<�v�*E��*I�#J�L��O�O�#��!��2D�c�L�FX�$Y�Z�#&�q�#�d�k�k�m�*<�q�*@�#A�L��O�O�H�t�{�{�}�$<�=��O�O�'�3��;M�$N�O���� 2�3�����#��o�o�k�%�)�Q���VZ�9[�&\�]���i�i��)��� � ��*�%�$r$c���[S5nURU5nURS5 URURU5US-5 U?URS5 URURU5US-5 U?URS5 URURU5US-5 U?URURU5U5 g)N�{zMy NotezMy Note
rriz	Your Notez
Your Note
)rAr�r�rn�	__notes__�r9r��vanillas   r"�test_exception_with_note�4BaseExceptionReportingTests.test_exception_with_notew	s����s�O���/�/�!�$��	�
�
�9���������+�W�{�-B�C�
�K�	�
�
�2���������+�W�t�^�<�
�K�	�
�
�;���������+�W�}�-D�E�
�K��������+�W�5r$c�n�[S5nURU5n"SS5n"SS5nU"5UlSnURURU5X%-S-5 U"5UlSnURURU5X&-S-5 U"5S	/UlS
nURURU5X'-S-5 U"5S	/UlSnURURU5X&-S-5 S
UlSnURURU5X&-S-5 SUlSnURURU5X&-S-5 "SS[5nU"S5nURU5nSUlURURU5US-5 g)Nr>c� �\rSrSrSrSrSrg)�OBaseExceptionReportingTests.test_exception_with_invalid_notes.<locals>.BadThingi�	c��g)N�bad strr�rNs r"r��WBaseExceptionReportingTests.test_exception_with_invalid_notes.<locals>.BadThing.__str__�	s�� r$c��g)N�bad reprr�rNs r"�__repr__�XBaseExceptionReportingTests.test_exception_with_invalid_notes.<locals>.BadThing.__repr__�	s��!r$r�N�r�r�r�r�r�rLr�r�r$r"�BadThingrF�	s��
!�
"r$rOc��\rSrSrSrSrg)�RBaseExceptionReportingTests.test_exception_with_invalid_notes.<locals>.Unprintablei�	c��[S5e�N�	bad valuer�rNs r"rL�[BaseExceptionReportingTests.test_exception_with_invalid_notes.<locals>.Unprintable.__repr__�	s
�� ��-�-r$r�N)r�r�r�r�rLr�r�r$r"�UnprintablerQ�	s��
.r$rVrKriz<__notes__ repr() failed>z
Final NoterHz
Final Note
z<note str() failed>zplease do not explode mez'please do not explode me's please do not show me as numbersz#b'please do not show me as numbers'c��\rSrSrSrSrSrg)�VBaseExceptionReportingTests.test_exception_with_invalid_notes.<locals>.BrokenExceptioni�	Fc�B�UR(a[SU35eg)Nzno )�brokenrA�r9�names  r"�__getattr__�bBaseExceptionReportingTests.test_exception_with_invalid_notes.<locals>.BrokenException.__getattr__�	s���;�;�$�s�4�&�\�2�2�r$r�N)r�r�r�r�rZr]r�r�r$r"�BrokenExceptionrX�	s���F�
3r$r_Tz<Ignored error getting __notes__: ValueError('no __notes__')
)rAr�r?rnr�rZ)	r9r�rArOrV�
notes_reprr7�bad_noter_s	         r"�!test_exception_with_invalid_notes�=BaseExceptionReportingTests.test_exception_with_invalid_notes�	s����s�O���/�/�!�$��	"�	"�	.�	.��j����
��������+�W�-A�D�-H�I�!�m���-���������+�W�->��-E�F�!�
�L�1������������+�W�-?�BR�-R�S�$�
�|�4���'���������+�W�->�AQ�-Q�R�1���.���������+�W�->��-E�F�:���7���������+�W�->��-E�F�	3�i�	3�
�C� ���/�/�!�$���������O�O�A���U�U�	Wr$c�*�[S5[S54H�nURUS9 URU5nUR	S5 UR	S5 UR	S5 URURU5US-S-S	-5 U?UR	S
5 U?UR	S5 UR	S5 URURU5US
-S-5 SSS5 M� g!,(df   M�=f)Nrdr}r�zNote 1zNote 2zNote 3zNote 1
zNote 2
zNote 3
zNote 4zNote 5zNote 6zNote 5
zNote 6
)rArmrr�r�rnr?r@s   r"�"test_exception_with_multiple_notes�>BaseExceptionReportingTests.test_exception_with_multiple_notes�	s����R�.�+�l�";�<�A������"��/�/�!�,���
�
�8�$��
�
�8�$��
�
�8�$�� � ��O�O�A�&��j�(�:�5�
�B�D��K��
�
�8�$��K��
�
�8�$��
�
�8�$�� � ��O�O�A�&��j�(�:�5�7�##�"�=�"�"�s�C
D�
D	c�R�"SS5nURURR55nSnSRURRRURRR
/5nU<SU<S3nUR
U[U-5 g)Nc�(�\rSrSr"SS5rSrg)�>BaseExceptionReportingTests.test_exception_qualname.<locals>.Ai�	c�*�\rSrSr"SS\5rSrg)�@BaseExceptionReportingTests.test_exception_qualname.<locals>.A.Bi�	c��\rSrSrSrSrg)�BBaseExceptionReportingTests.test_exception_qualname.<locals>.A.B.Xi�	c��g�N�I am Xr�rNs r"r��JBaseExceptionReportingTests.test_exception_qualname.<locals>.A.B.X.__str__�	s��'r$r�Nr�r�r$r"r�rm�	s��(r$r�r�N)r�r�r�r�r�r�r�r�r$r"r�rk�	s��(�	�(r$r�r�N)r�r�r�r�r�r�r�r$r"r�ri�	s��
(�
(r$r�rprr�ri)r�r�r�r�r�r�rn�
MODULE_PREFIX)r9r�rvr�r�r:s      r"�test_exception_qualname�3BaseExceptionReportingTests.test_exception_qualname�	sy��	(�	(��o�o�a�c�c�e�e�g�&���	��8�8�Q�S�S�U�U�-�-�q�s�s�u�u�/A�/A�B�C��$�i�0������m�c�1�2r$c�n�"SS[5nSH�nX!lURUS9 URU"55nSnUS;a
URnO'SRURUR/5nU<SU<S	3nUR
Xc5 SSS5 M� g!,(df   M�=f)
Nc��\rSrSrSrSrg)�@BaseExceptionReportingTests.test_exception_modulename.<locals>.Xi�	c��gror�rNs r"r��HBaseExceptionReportingTests.test_exception_modulename.<locals>.X.__str__�	���r$r�Nr�r�r$r"r�rw�	���
 r$r�)rr��some_module)�
modulenamerp)r�rrr�ri)r�r�rr�r�r�rn)r9r�r}rvr�r�r:s       r"�test_exception_modulename�5BaseExceptionReportingTests.test_exception_modulename�	s���	 �	�	 �@�J�%�L������4��o�o�a�c�*��$�	��!9�9� �~�~�H�"�x�x����q�~�~�(F�G�H�$,�i�8��� � ��*�5�4�@�4�4�s�A.B%�%
B4	c��[R"S5n[USS5n00pC[X#U5 UR	US5nSnURXe5 g)Nz~
            try:
                raise ValueError(42)
            except Exception as e:
                exc = e
            z<does not exist>rKrEz>  File "<does not exist>", line 3, in <module>
ValueError: 42
)r�r�rMrKr�rr)r9�srcrr�lrvr:s       r"�'test_exception_angle_bracketed_filename�CBaseExceptionReportingTests.test_exception_angle_bracketed_filename�	sZ���o�o�����s�.��7���2�1��T�a���o�o�a��h�'��P���
�
�c�r$c��"SS[5nSUlURU"55nSURS3nUR	X25 g)Nc��\rSrSrSrSrg)�LBaseExceptionReportingTests.test_exception_modulename_not_unicode.<locals>.Xi
c��gror�rNs r"r��TBaseExceptionReportingTests.test_exception_modulename_not_unicode.<locals>.X.__str__
rzr$r�Nr�r�r$r"r�r�
r{r$r�rdz
<unknown>.z	: I am X
)r�r�r�r�rn)r9r�rvr:s    r"�%test_exception_modulename_not_unicode�ABaseExceptionReportingTests.test_exception_modulename_not_unicode
sH��	 �	�	 �����o�o�a�c�"���1�>�>�*�*�5������"r$c���"SS[5nURU"55nSnSRURUR/5nUR[U-USUS35 g)Nc��\rSrSrSrSrg)�@BaseExceptionReportingTests.test_exception_bad__str__.<locals>.Xi
c��SS- gr�r�rNs r"r��HBaseExceptionReportingTests.test_exception_bad__str__.<locals>.X.__str__
r�r$r�Nr�r�r$r"r�r�
r�r$r�r�rr�ri)r�r�r�r�r�rnrrr�s     r"�test_exception_bad__str__�5BaseExceptionReportingTests.test_exception_bad__str__
sb��	�	�	��o�o�a�c�"��.�	��8�8�Q�\�\�1�>�>�:�;�������,��
�"�Y�K�r�.J�Kr$c	��SnS[SURS[SURRS-S3	nUR	U5nURX25 g)Nc�B�[S[S5[S5/5er�r�r�r$r"rE�CBaseExceptionReportingTests.test_exception_group_basic.<locals>.exc
s�� ��
�1�
�y��|�'D�E�Er$r�r��_, in get_exception
  |     exception_or_callable()
  |     ~~~~~~~~~~~~~~~~~~~~~^^
  |   File "rea, in exc
  |     raise ExceptionGroup("eg", [ValueError(1), TypeError(2)])
  | ExceptionGroup: eg (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 1
    +---------------- 2 ----------------
    | TypeError: 2
    +------------------------------------
�r�r�r�r�r�rn�r9rErF�reports    r"�test_exception_group_basic�6BaseExceptionReportingTests.test_exception_group_basic
sp��	F��$�:�X�d�.@�.@�-A�B�%�:�X�c�l�l�.I�.I�A�.M�-N�O;�	<�	�����%������*r$c
��SnS[SURRS-S[SURS[SURRS-S3
nUR	U5nURX25 g)	Nc��[nU"S[S5[S5/5e![a#nU"S[S5[S5/5UeSnAff=f)N�eg1rerg�eg2r~rd�r�rAr�r�)�EGr�s  r"rE�CBaseExceptionReportingTests.test_exception_group_cause.<locals>.exc3
sU���B�
F����A��	�!�� =�>�>���
F����A��	�!�� =�>�A�E��
F�s�%�
A�A
�
Ar�r�r~a�, in exc
  |     raise EG("eg1", [ValueError(1), TypeError(2)])
  | ExceptionGroup: eg1 (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 1
    +---------------- 2 ----------------
    | TypeError: 2
    +------------------------------------

The above exception was the direct cause of the following exception:

  + Exception Group Traceback (most recent call last):
  |   File "r�ra, in exc
  |     raise EG("eg2", [ValueError(3), TypeError(4)]) from e
  | ExceptionGroup: eg2 (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 3
    +---------------- 2 ----------------
    | TypeError: 4
    +------------------------------------
�r�r�r�r�r�rnr�s    r"�test_exception_group_cause�6BaseExceptionReportingTests.test_exception_group_cause2
s���	F�#�#+�*�H�S�\�\�5P�5P�ST�5T�4U�V#�$,�*�H�T�5G�5G�4H�I#�$,�*�H�S�\�\�5P�5P�ST�5T�4U�VB�!C��2����%������*r$c�B�SnS[SURRS-S[SURRS-S[SURS[SURRS	-S
3nUR	U5nURX25 g)Nc���[nU"S[S5[S5/5e!Ua U"S[S5[S5/5ef=f!Ua [S5ef=f)Nr�rergr�r~rdr)r�rAr��ImportError)r�s r"rE�RBaseExceptionReportingTests.test_exception_group_context_with_context.<locals>.excW
so���B�
%�C��U�Z��]�I�a�L�$A�B�B���C��U�Z��]�I�a�L�$A�B�B�C���
%�!�!�n�$�
%�s�&�$A
�
A
�
Ar�r�rda�, in exc
  |     raise EG("eg1", [ValueError(1), TypeError(2)])
  | ExceptionGroup: eg1 (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 1
    +---------------- 2 ----------------
    | TypeError: 2
    +------------------------------------

During handling of the above exception, another exception occurred:

  + Exception Group Traceback (most recent call last):
  |   File "ra, in exc
  |     raise EG("eg2", [ValueError(3), TypeError(4)])
  | ExceptionGroup: eg2 (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 3
    +---------------- 2 ----------------
    | TypeError: 4
    +------------------------------------

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "zS, in get_exception
    exception_or_callable()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "r[z1, in exc
    raise ImportError(5)
ImportError: 5
r�r�s    r"�)test_exception_group_context_with_context�EBaseExceptionReportingTests.test_exception_group_context_with_contextV
s���	%��$�:�X�c�l�l�.I�.I�A�.M�-N�O�%�:�X�c�l�l�.I�.I�A�.M�-N�O�!�z��$�*<�*<�)=�>�!�z��#�,�,�*E�*E��*I�)J�K �9!�	�B����%������*r$c�B�SnS[SURRS-S[SURRS-S[SURS[SURRS	-S
3nUR	U5nURX25 g)Nc���[n[n[nU"SU"S5U"S5/5e![anUnSnAOSnAff=fU"SU"S5XA"S5/5e!Ua U"SU"S5/5ef=f)	N�nestedrgr~r�rerd�toprr�)r��VE�TEr�rEs     r"rE�DBaseExceptionReportingTests.test_exception_group_nested.<locals>.exc�
s����B��B��B�
)���X��1��r�!�u�~�6�6�� ���C�������1��s�B�q�E�2�3�3���
)����A���(�(�
)�s#�,�
A�=�A�A�A�A3r�r��	a, in exc
  |     raise EG("eg", [VE(1), exc, VE(4)])
  | ExceptionGroup: eg (3 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 1
    +---------------- 2 ----------------
    | Exception Group Traceback (most recent call last):
    |   File "ra, in exc
    |     raise EG("nested", [TE(2), TE(3)])
    | ExceptionGroup: nested (2 sub-exceptions)
    +-+---------------- 1 ----------------
      | TypeError: 2
      +---------------- 2 ----------------
      | TypeError: 3
      +------------------------------------
    +---------------- 3 ----------------
    | ValueError: 4
    +------------------------------------

During handling of the above exception, another exception occurred:

  + Exception Group Traceback (most recent call last):
  |   File "r�r�z�, in exc
  |     raise EG("top", [VE(5)])
  | ExceptionGroup: top (1 sub-exception)
  +-+---------------- 1 ----------------
    | ValueError: 5
    +------------------------------------
r�r�s    r"�test_exception_group_nested�7BaseExceptionReportingTests.test_exception_group_nested�
s���	)�#�#+�*�H�S�\�\�5P�5P�ST�5T�4U�V%�&.�J�h�s�|�|�7R�7R�UV�7V�6W�X#�$,�*�H�T�5G�5G�4H�I#�$,�*�H�S�\�\�5P�5P�SU�5U�4V�WB�5C��B����%������*r$c��/n[S5HnUR[U55 M [SU5nSnUR	U5nURXT5 g)N��r�a>  | ExceptionGroup: eg (1000 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 0
    +---------------- 2 ----------------
    | ValueError: 1
    +---------------- 3 ----------------
    | ValueError: 2
    +---------------- 4 ----------------
    | ValueError: 3
    +---------------- 5 ----------------
    | ValueError: 4
    +---------------- 6 ----------------
    | ValueError: 5
    +---------------- 7 ----------------
    | ValueError: 6
    +---------------- 8 ----------------
    | ValueError: 7
    +---------------- 9 ----------------
    | ValueError: 8
    +---------------- 10 ----------------
    | ValueError: 9
    +---------------- 11 ----------------
    | ValueError: 10
    +---------------- 12 ----------------
    | ValueError: 11
    +---------------- 13 ----------------
    | ValueError: 12
    +---------------- 14 ----------------
    | ValueError: 13
    +---------------- 15 ----------------
    | ValueError: 14
    +---------------- ... ----------------
    | and 985 more exceptions
    +------------------------------------
)r�r5rAr�r�rn)r9�excsr�r�rFr�s      r"� test_exception_group_width_limit�<BaseExceptionReportingTests.test_exception_group_width_limit�
sX�����t��A��K�K�
�1�
�&��
�D�$�
'��!B��F����$������*r$c	���[S5n[S5H(n[SU3[U5U[U*5/5nM* SnUR	U5nURXC5 g)N�bad typer�r�a�  | ExceptionGroup: eg999 (3 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 999
    +---------------- 2 ----------------
    | ExceptionGroup: eg998 (3 sub-exceptions)
    +-+---------------- 1 ----------------
      | ValueError: 998
      +---------------- 2 ----------------
      | ExceptionGroup: eg997 (3 sub-exceptions)
      +-+---------------- 1 ----------------
        | ValueError: 997
        +---------------- 2 ----------------
        | ExceptionGroup: eg996 (3 sub-exceptions)
        +-+---------------- 1 ----------------
          | ValueError: 996
          +---------------- 2 ----------------
          | ExceptionGroup: eg995 (3 sub-exceptions)
          +-+---------------- 1 ----------------
            | ValueError: 995
            +---------------- 2 ----------------
            | ExceptionGroup: eg994 (3 sub-exceptions)
            +-+---------------- 1 ----------------
              | ValueError: 994
              +---------------- 2 ----------------
              | ExceptionGroup: eg993 (3 sub-exceptions)
              +-+---------------- 1 ----------------
                | ValueError: 993
                +---------------- 2 ----------------
                | ExceptionGroup: eg992 (3 sub-exceptions)
                +-+---------------- 1 ----------------
                  | ValueError: 992
                  +---------------- 2 ----------------
                  | ExceptionGroup: eg991 (3 sub-exceptions)
                  +-+---------------- 1 ----------------
                    | ValueError: 991
                    +---------------- 2 ----------------
                    | ExceptionGroup: eg990 (3 sub-exceptions)
                    +-+---------------- 1 ----------------
                      | ValueError: 990
                      +---------------- 2 ----------------
                      | ... (max_group_depth is 10)
                      +---------------- 3 ----------------
                      | ValueError: -990
                      +------------------------------------
                    +---------------- 3 ----------------
                    | ValueError: -991
                    +------------------------------------
                  +---------------- 3 ----------------
                  | ValueError: -992
                  +------------------------------------
                +---------------- 3 ----------------
                | ValueError: -993
                +------------------------------------
              +---------------- 3 ----------------
              | ValueError: -994
              +------------------------------------
            +---------------- 3 ----------------
            | ValueError: -995
            +------------------------------------
          +---------------- 3 ----------------
          | ValueError: -996
          +------------------------------------
        +---------------- 3 ----------------
        | ValueError: -997
        +------------------------------------
      +---------------- 3 ----------------
      | ValueError: -998
      +------------------------------------
    +---------------- 3 ----------------
    | ValueError: -999
    +------------------------------------
)r�r�r�rAr�rn)r9rEr�rFr�s     r"� test_exception_group_depth_limit�<BaseExceptionReportingTests.test_exception_group_depth_limit�
si���
�#���t��A� ��Q�C���A���Z���^�4�6�C��
FB��P����%������*r$c�B�SnS[SURS[SURRS-S[SURRS-S[SURRS-S	3nUR	U5nURX25 g)
Nc��/nSH
n[U5e [SU5e![a0nURSU35 URU5 SnAMRSnAff=f![anURS5 eSnAff=f)N�rTzterrible value�the r��t>> Multi line note
>> Because I am such
>> an important exception.
>> empty lines work too

(that was an empty line)�rAr�r5r��r�r�r�s   r"rE�HBaseExceptionReportingTests.test_exception_group_with_notes.<locals>.exc6s���
���:�C�'�(��o�-�;�%�X�t�4�4��&�'��
�
�T�#��<�0����A����'��"�
��
�
�7�9���
�s<�A �#�A �
A�%A�A �A�A � 
B�*A<�<Br�r�r�r�aQ, in exc
  |     raise ExceptionGroup("nested", excs)
  | ExceptionGroup: nested (2 sub-exceptions)
  | >> Multi line note
  | >> Because I am such
  | >> an important exception.
  | >> empty lines work too
  | 
  | (that was an empty line)
  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "rz�, in exc
    |     raise ValueError(msg)
    | ValueError: bad value
    | the bad value
    +---------------- 2 ----------------
    | Traceback (most recent call last):
    |   File "z�, in exc
    |     raise ValueError(msg)
    | ValueError: terrible value
    | the terrible value
    +------------------------------------
r�r�s    r"�test_exception_group_with_notes�;BaseExceptionReportingTests.test_exception_group_with_notes5s���	�&#�#+�*�H�T�5G�5G�4H�I#�$,�*�H�S�\�\�5P�5P�ST�5T�4U�V%�&.�J�h�s�|�|�7R�7R�UV�7V�6W�X%�&.�J�h�s�|�|�7R�7R�UV�7V�6W�XB�+C��6����%������*r$c�B�SnS[SURS[SURRS-S[SURRS-S[SURRS-S	3nUR	U5nURX25 g)
Nc�R�/nSH
n[U5e [SU5e![aDnURSU35 URSU35 URU5 SnAMfSnAff=f![a(nURS5 URS5 eSnAff=f)Nr�r�zGoodbye r�r�zGoodbye!r�r�s   r"rE�QBaseExceptionReportingTests.test_exception_group_with_multiple_notes.<locals>.exchs���
���:�C�'�(��o�-�;�%�X�t�4�4��	&�'��
�
�T�#��<�0��
�
�X�c�U�#3�4����A����'��
"�
��
�
�7�9��
�
�:�&���
�s<�A4�#�A4�
A1�9A,�&A4�,A1�1A4�4
B&�>#B!�!B&r�r�r�r�a^, in exc
  |     raise ExceptionGroup("nested", excs)
  | ExceptionGroup: nested (2 sub-exceptions)
  | >> Multi line note
  | >> Because I am such
  | >> an important exception.
  | >> empty lines work too
  | 
  | (that was an empty line)
  | Goodbye!
  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "rz�, in exc
    |     raise ValueError(msg)
    | ValueError: bad value
    | the bad value
    | Goodbye bad value
    +---------------- 2 ----------------
    | Traceback (most recent call last):
    |   File "z�, in exc
    |     raise ValueError(msg)
    | ValueError: terrible value
    | the terrible value
    | Goodbye terrible value
    +------------------------------------
r�r�s    r"�(test_exception_group_with_multiple_notes�DBaseExceptionReportingTests.test_exception_group_with_multiple_notesgs���	�*#�#+�*�H�T�5G�5G�4H�I#�$,�*�H�S�\�\�5P�5P�SU�5U�4V�W%�&.�J�h�s�|�|�7R�7R�UV�7V�6W�X%�&.�J�h�s�|�|�7R�7R�UV�7V�6W�XB�/C��<����%������*r$c
��SnS[SURS[SURRS-S[SURRS-S3
nUR	U5nURX25 g)	Nc�b�[S5e!/=[=b	neSnAP PO P8=c gsf=f)Nrd�r�r�s r"rE�KBaseExceptionReportingTests.test_exception_group_wrapped_naked.<locals>.exc�s)��
���m�#��
�I�
���
��s�
�
.�	�.r�r�r�r~z�, in exc
  |     except* Exception as e:
  |         raise
  | ExceptionGroup:  (1 sub-exception)
  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "rgze, in exc
    |     raise Exception(42)
    | Exception: 42
    +------------------------------------
r�r�s    r"�"test_exception_group_wrapped_naked�>BaseExceptionReportingTests.test_exception_group_wrapped_naked�s���	�#�#+�*�H�T�5G�5G�4H�I#�$,�*�H�S�\�\�5P�5P�ST�5T�4U�V%�&.�J�h�s�|�|�7R�7R�UV�7V�6W�XB�
C������%������*r$c�~�SnSnU"5nSnURRn[R"X#XE5n[	5nXglS[SUS3nURU5n	SRU	RS5V
s/sHo�R5PM sn
5n	URX�5 gs sn
f)Nc�,�[R"5$r=�r;rer�r$r"r��TBaseExceptionReportingTests.test_KeyboardInterrupt_at_first_line_of_frame.<locals>.f�s���=�=�?�"r$rr�r�z', in f
    def f():

KeyboardInterrupt
ri)r�r��types�
TracebackTyper�rmr�r�r�r��rstriprn)r9r�r,r%�lastirr)rErFr�r�s           r"�-test_KeyboardInterrupt_at_first_line_of_frame�IBaseExceptionReportingTests.test_KeyboardInterrupt_at_first_line_of_frame�s���	#�����������*�*��
�
 �
 ���
?���!�����'�j����9*�+������%��������T�0B�C�0B�1�H�H�J�0B�C�D������*��Ds�B:r�N)'r�r�r�r�r�r�r�r�r�r�r�rr
r
rrr'r,r0r;rBrbrersr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r$r"r�r��s����"�*�*�9�9�A�=�M��N�0� ;�;�
?�;�('�.	6�I�2	*�+�,6�$7W�r7�.3�+�"
 �	#�L�+�*"+�H-+�^0+�d*+�XP+�d0+�d5+�n+�6+r$r�c��\rSrSrSrSrg)�PyExcReportingTestsi�c�x�URU5nSR[R"[	U5XR
55n[
S5n[R"[	U5XR
5 SSS5 URWR5U5 U$!,(df   N0=f)Nrr�)
r�r�rBrkr�rmrrZrnr[)r9r��s�sios    r"r��PyExcReportingTests.get_report�s������q�!���G�G��&�&�t�A�w��?�?�C�
E��
�X�
&�#��%�%�d�1�g�q�/�/�B�'���������+���'�
&�s�+B+�+
B9r�N)r�r�r�r�r�r�r�r$r"r�r��s��r$r�c�$�\rSrSr\S5rSrg)�CExcReportingTestsi�c���SSKJn URU5n[S5nU"U5 SSS5 UR	5$!,(df   WR	5$=f)Nrr�r�)r�r�r�rr[)r9r�r�r�s    r"r��CExcReportingTests.get_report�sM��-����q�!��
�X�
&�!��A��'��z�z�|��'�
&��z�z�|��s�	A�
A!r�N)r�r�r�r�rr�r�r�r$r"r�r��s�����r$r�c�f�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrg)�
LimitTestsi�z\Tests for limit argument.
It's enough to test extact_tb, extract_stack and format_exception c��[S5e)NzLast raisedr�rNs r"�last_raises1�LimitTests.last_raises1�s
���
�&�&r$c�$�UR5 gr=)r�rNs r"�last_raises2�LimitTests.last_raises2�������r$c�$�UR5 gr=)r�rNs r"�last_raises3�LimitTests.last_raises3�r�r$c�$�UR5 gr=)r�rNs r"�last_raises4�LimitTests.last_raises4r�r$c�$�UR5 gr=)r�rNs r"�last_raises5�LimitTests.last_raises5r�r$c�,�[R"5$r=r�rNs r"�last_returns_frame1�LimitTests.last_returns_frame1s���}�}��r$c�"�UR5$r=)r�rNs r"�last_returns_frame2�LimitTests.last_returns_frame2
����'�'�)�)r$c�"�UR5$r=)r�rNs r"�last_returns_frame3�LimitTests.last_returns_frame3
rr$c�"�UR5$r=)rrNs r"�last_returns_frame4�LimitTests.last_returns_frame4rr$c�"�UR5$r=)rrNs r"�last_returns_frame5�LimitTests.last_returns_frame5rr$c�B^^�TR5mU4SjnU4Sjn[R"[SS5 U"5nTR	[U5S5 TR
U"SS9USS5 U"U"S	S9US
SS5 TR
U"SS9USS5 U"U"S
S9USS	[U5S-
S-
5 TR
U"S
S9/5 [?U"U"5US5 S[lTR
U"5USS5 TR
U"SS9USS5 TR
U"SS9USS5 S
[lTR
U"5/5 S[lTR
U"5/5 SSS5 g!,(df   g=f)Nc�2>�[R"T40UD6$r=�rB�
extract_stack)�kwargsr%s �r"�extract�.LimitTests.test_extract_stack.<locals>.extracts����*�*�5�;�F�;�;r$c�>�TRUSUUSU5 TRXS-SXS-S5 TR[U5[U55 gr)rnro)r�rF�ignorer9s   �r"�assertEqualExcept�8LimitTests.test_extract_stack.<locals>.assertEqualExceptsZ������V�G�V�_�h�w��.?�@����V�1�H�I�.�����0C�D����S��[�#�h�-�8r$�tracebacklimitr�rrg��limitrGr*i����i����rerr~r�r)rrrer;�
assertGreaterrornr)r9rr�nolimr%s`   @r"�test_extract_stack�LimitTests.test_extract_stacksz����(�(�*��	<�	9�
�
�
�s�$4�d�
;��I�E����s�5�z�1�-����W�1�-�u�R�S�z�:��g�C�0�%���,��E����W�2�.��b�q�	�:��g�D�1�5��#�;��E�
�1��Q��O����W�1�-�r�2��"��g�i���5�!"�C�����W�Y��b�c�
�3����W�1�-�u�R�S�z�:����W�2�.��b�q�	�:�!"�C�����W�Y��+�!#�C�����W�Y��+�#<�
;�
;�s�EF�
Fc�^�UR5 U4Sjn[R"[
SS5 U"5nUR
[U5S5 UR
U"SS9USS5 UR
U"SS9U5 UR
U"SS9USS5 UR
U"S	S9U5 UR
U"S
S9/5 [
?UR
U"5U5 S[
lUR
U"5USS5 UR
U"SS9USS5 UR
U"SS9USS5 S
[
lUR
U"5/5 S
[
lUR
U"5/5 SSS5 g![anURmSnAGN�SnAff=f!,(df   g=f)Nc�2>�[R"T40UD6$r=)rB�
extract_tb)rr)s �r"r�+LimitTests.test_extract_tb.<locals>.extract7s����'�'��5�f�5�5r$rr�rrgrr�rG���rr~r�r)	r�r�rmrrer;rnror)r9r�rrr)s    @r"�test_extract_tb�LimitTests.test_extract_tb2s����	!�����	6��
�
�s�$4�d�
;��I�E����S��Z��-����W�1�-�u�R�a�y�9����W�2�.��6����W�2�.��b�c�
�;����W�3�/��7����W�1�-�r�2��"����W�Y��.�!"�C�����W�Y��b�q�	�2����W�1�-�u�R�a�y�9����W�2�.��b�c�
�;�!"�C�����W�Y��+�!#�C�����W�Y��+�#<�
;���	!����B��	!��
<�
;�s#�F
�EF1�
F.�F)�)F.�1
F?c�p^�UR5 U4Sjn[R"[SS5 U"5nUR[
U5S5 URU"SS9USS5 URU"SS9U5 URU"SS9USS5 URU"S	S9U5 URU"S
S9/5 [?URU"5U5 S[lURU"5USS5 URU"SS9USS5 URU"SS9USS5 S
[lURU"5/5 S
[lURU"5/5 SSS5 g![a
nUmSnAGN�SnAff=f!,(df   g=f)Nc�8>�[R"T40UD6SS$)Nrer)rBrk)rrEs �r"r�1LimitTests.test_format_exception.<locals>.extractTs ����-�-�c�<�V�<�Q�r�B�Br$rr�rrgrr�rGr rr~r�r)r�r�rrer;rnror)r9r�rrrEs    @r"�test_format_exception� LimitTests.test_format_exceptionMs����	�����
	C��
�
�s�$4�d�
;��I�E����S��Z��-����W�1�-�u�R�a�y�9����W�2�.��6����W�2�.��b�c�
�;����W�3�/��7����W�1�-�r�2��"����W�Y��.�!"�C�����W�Y��b�q�	�2����W�1�-�u�R�a�y�9����W�2�.��b�c�
�;�!"�C�����W�Y��+�!#�C�����W�Y��+�#<�
;���	��C��	��<�
;�s#�F
�EF'�
F$�F�F$�'
F5r�N)r�r�r�r�r*r�r�r�r�r�r�r�rrrrr!r&r�r�r$r"r�r��sI��N�'������*�*�*�*�,�8,�6,r$r�c� �\rSrSrSrSrSrg)�MiscTracebackCasesikc�^^�U4SjnU4SjmSmU"5 WRRRRnUR	[UR5S5 [R"U5 UR	[UR5S5 g![anURnSnAN�SnAff=f)Nc�>�T"5 gr=r�)�middles�r"�outer�,MiscTracebackCases.test_clear.<locals>.outerqs����Hr$c�>�T"5 gr=r�)�inners�r"r,�-MiscTracebackCases.test_clear.<locals>.middless����Gr$c��SnSS- gr�r�)r�s r"r0�,MiscTracebackCases.test_clear.<locals>.innerus���A�
�a�Cr$rer)	r�rmr,r*rnror(rB�clear_frames)r9r-r�r)�inner_framer0r,s     @@r"�
test_clear�MiscTracebackCases.test_clearps����	�	�	�	!��G�
�j�j�(�(�0�0�9�9������[�1�1�2�A�6�	���r�"�	
����[�1�1�2�A�6���	!����B��	!�s�B%�%
C�/C�Cc���SnU"5nURRnURUSS[US-SS4[US-SS4/5 UR[	US	5S
5 g)Nc�,�[R"5$r=rr�r$r"r�6MiscTracebackCases.test_extract_stack.<locals>.extract�s���*�*�,�,r$rGrgrzresult = extract()rerz return traceback.extract_stack()rrd)r�r�rnr�ro)r9rr�rs    r"r�%MiscTracebackCases.test_extract_stack�sw��	-�����!�!�0�0���������
�v�a�x�!5�7K�L�
�v�a�x��,N�O�'�	�	
����V�A�Y���+r$r�N)r�r�r�r�r6rr�r�r$r"r)r)ks��
7�0	,r$r)c�2�\rSrSrSrSrSrSrSrSr	g)	�	TestFramei�c�H�[R"5 [R"S[55 [R
"SSS5nUR
US5 UR
[U5S5 UR
U[R
"SSS55 UR
U[U55 UR
[U5U5 URUR5 URU[55 UR
U[5 g)Nr�re�dummy)r�rer?�%"""Test cases for traceback module""")
�	linecache�
clearcache�	lazycache�globalsrB�FrameSummaryrn�tuple�assertIsNone�locals�assertNotEqual�objectr	�r9r�s  r"�test_basics�TestFrame.test_basics�s����������C���+��"�"�3��7�3������F�	H�����q��F�	H�����I�2�2�3��7�C�D�����E�!�H�%�	
����q��1�%����!�(�(�#����A�v�x�(�����I�&r$c�
�[R"5 [R"SSSSS9nUR	SUR
5 [R"S[55 UR	SUR5 g)Nr�rer?F)�lookup_liner@)	rArBrBrErn�_linesrCrDr>rKs  r"�test_lazy_lines�TestFrame.test_lazy_lines�sb�������"�"�3��7��F������q�x�x�(����C���+����3�
�F�F�	r$c�l�[R"SSS5nURURS5 g)Nr�r?�rBrErnr>rKs  r"�test_no_line�TestFrame.test_no_line�s*���"�"�3��g�6���������&r$c�j�[R"SSSSS9nURSUR5 g)Nr�rer?r>�r>rTrKs  r"�test_explicit_line�TestFrame.test_explicit_line�s,���"�"�3��7��@���������(r$c�h�[R"SSSSS9nUR[U5S5 g)Nr�rer?r>rXrd)rBrErnrorKs  r"�test_len�TestFrame.test_len�s,���"�"�3��7��@������Q���#r$r�N)
r�r�r�r�rLrQrUrYr\r�r�r$r"r=r=�s��'�"�'�)�$r$r=c�n�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrg)�	TestStacki�c���Sn[[R"S55nU"5nUR[	U5[	U5-
S5 URUSSU5 g)Nc�@�[[R"S55$r=)�listrB�
walk_stackr�r$r"�deeper�)TestStack.test_walk_stack.<locals>.deeper�s���	�,�,�T�2�3�3r$re)rbrBrcrnro)r9rd�s1�s2s    r"�test_walk_stack�TestStack.test_walk_stack�sV��	4�
�)�&�&�t�,�
-��
�X������R��3�r�7�*�A�.�����A�B���$r$c���SS- [[R"W55nUR[
U5S5 g![anURnSnANVSnAff=fr�)r�rmrbrB�walk_tbrnro)r9r�r)r�s    r"�test_walk_tb�TestStack.test_walk_tb�sT��	!�
�a�C�
��"�"�2�&�'������Q���#���	!����B��	!�s�A�
A"�A�A"c��[RR[R"S55nUR	U[R5 gr=)rB�StackSummaryrrc�assertIsInstance�r9r�s  r"r�TestStack.test_extract_stack�s9���"�"�*�*�9�+?�+?��+E�F�����a��!7�!7�8r$c��[RR[R"S5SS9nUR	[U5S5 g)Nrr)rBrorrcrnrorqs  r"�test_extract_stack_limit�"TestStack.test_extract_stack_limit�s<���"�"�*�*�9�+?�+?��+E�Q�*�O������Q���#r$c�Z�[R"5 [R"S[55 [	SS5n[USS5n[RR[US4/5SS9n[R"5 URUSRS5 g)N�/foo.pyr�rT��lookup_linesr�
import sys)rArB�updatecacherD�	test_code�
test_framerBrorr rnr>�r9rr�r�s    r"�test_extract_stack_lookup_lines�)TestStack.test_extract_stack_lookup_lines�s����������i���3��i��*���q�$��%���"�"�*�*�4�!�Q���>��*�M����������1����L�1r$c�p�[R"5 [SS5n[USS5n[R
R
[US4/5SS9nUR0[R5 [R"S[55 URUSRS5 g)Nrwr�rFrxrrz)
rArBr|r}rBrorr rn�cacher{rDr>r~s    r"�*test_extract_stackup_deferred_lookup_lines�4TestStack.test_extract_stackup_deferred_lookup_lines�s��������i��*���q�$��%���"�"�*�*�4�!�Q���>��*�N������Y�_�_�-����i���3�����1����L�1r$c��[RRS/5nURS/UR	55 g�N��foo.pyre�fredr>z*  File "foo.py", line 1, in fred
    line
�rBro�	from_listrnr&rqs  r"�test_from_list�TestStack.test_from_list�s9���"�"�,�,�.K�-L�M�����
;�<�
�H�H�J�	r$c���[RRS/5nSUS'[RRU5nURS/UR	55 g)Nr�)r�rgr�r>rz*  File "foo.py", line 2, in fred
    line
r�)r9r�rgs   r"�test_from_list_edited_stack�%TestStack.test_from_list_edited_stack�sX���"�"�,�,�.K�-L�M��,��!��
�
#�
#�
-�
-�a�
0�����
;�<��I�I�K�	r$c��[RRS/5nURS/UR	55 gr�r�rqs  r"�test_format_smoke�TestStack.test_format_smoke�s;��
�"�"�,�,�.K�-L�M�����
;�<�
�H�H�J�	r$c��[R"S[55 [SS5n[	U[5SS05n[
RR[US4/5SS9nURUSRSS	05 g)
Nrwr��	somethingrerT��capture_localsr�1�rAr{rDr|r}rBrorr rnrHr~s    r"�test_locals�TestStack.test_locals�sw�����i���3��i��*���q�'�)�k�1�%5�6���"�"�*�*�4�!�Q���>�$�*�O������1����{�C�&8�9r$c��[R"S[55 [SS5n[	U[5SS05n[
RR[US4/55nURUSRS5 g)Nrwr�r�rerrr�r~s    r"�test_no_locals�TestStack.test_no_locals
sm�����i���3��i��*���q�'�)�k�1�%5�6���"�"�*�*�4�!�Q���>�:������1����d�+r$c��SnU"SS5nURS[URRS-4-/UR	55 g)Nc�p�SnSn[RR[R"S5SSS9$)NrergT)r�r)rBrorrc)�k�vrrs    r"�
some_inner�0TestStack.test_format_locals.<locals>.some_inner
s>���A��A��)�)�1�1��$�$�T�*�4�q�2�J�
Jr$r~rdzw  File "%s", line %d, in some_inner
    return traceback.StackSummary.extract(
    a = 1
    b = 2
    k = 3
    v = 4
)rnr�r�r�r&)r9r�r�s   r"�test_format_locals�TestStack.test_format_locals

sZ��	J�

�q�!�������
'�
�(;�(;�(J�(J�Q�(N�O�P�
��x�x�z�	r$c��^�"SS[R5mU4SjnU"5nURUR5[SUR
RS-3/5 g)Nc��\rSrSrSSjrSrg)�>TestStack.test_custom_format_frame.<locals>.CustomStackSummaryi
c�8�URSUR3$)N�:)r+r)r9�
frame_summaryr7s   r"�format_frame_summary�STestStack.test_custom_format_frame.<locals>.CustomStackSummary.format_frame_summary
s!��'�0�0�1��=�3G�3G�2H�I�Ir$r�N�F)r�r�r�r�r�r�r�r$r"�CustomStackSummaryr�
s��
Jr$r�c�L>�TR[R"S5SS9$)Nrer)rrBrc)r�s�r"r��6TestStack.test_custom_format_frame.<locals>.some_inner"
s+���%�-�-��$�$�T�*�!�.�5�
5r$r�re)rBrornr&r�r�r�)r9r�r�r�s   @r"�test_custom_format_frame�"TestStack.test_custom_format_frame
s`���	J��!7�!7�	J�	5�
�L�����
�H�H�J��z��:�.�.�=�=��A�B�
C�D�	Fr$c�f^�SmU4SjnU"5n"SS[R5nUR[R"U55R	5nUR[
U5S5 TRRS-nURUSS[SUS	35 g)
Nc��SS- gr�r�r�r$r"r��)TestStack.test_dropping_frames.<locals>.f,
rr$c�\>�T"5 g![anURsSnA$SnAff=fr=)r�rm)r�r�s �r"r�)TestStack.test_dropping_frames.<locals>.g/
s'���
'�����
'����&��
'�s��
+�&�+�+c�,^�\rSrSrSU4SjjrSrU=r$)�.TestStack.test_dropping_frames.<locals>.Skip_Gi7
c�D>�URS:Xag[TU]	U5$r)r\r3r�)r9r�r7r:s   �r"r��CTestStack.test_dropping_frames.<locals>.Skip_G.format_frame_summary8
s$��� �%�%��,���w�3�M�B�Br$r�r�)r�r�r�r�r�r�r�r�s@r"�Skip_Gr�7
s���
C�
Cr$r�rerrNr�z, in f
    1/0
)
rBrorrkr&rnror�r�r�)r9rr)r��stack�lnor�s      @r"�test_dropping_frames�TestStack.test_dropping_frames+
s����	�	'��S��	C�Y�+�+�	C�������b�!�#�#)�6�8�	�	
����U��Q�'��j�j�'�'�!�+������!�H��x�j����->�?�	
r$c��SnURS5nU[S5-nSnUR[[5 [[S5nUR
U5 SSS5 [R"[05 [[U[S55 g!,(df   NE=f![Gan[RRU5RnUR!U[R"5 [$R&R(R+USUR,S9nUR/[U5S5 UR1UR3US	5R55S
[S3SU3/5 UR7X#U/S5 SSS5 SnAg!,(df   SnAg=fSnAff=f)
Nzabcdef = 1 / 0 and 2.0z1 / 0z)# this line will be used during renderingr�rK�_should_show_carets)�wrapsrgrerNz", line 1, in <module>r4)�indexrorrrr
r�r�rAr{rKrMr�rB�TracebackException�from_exceptionr�rpro�unittest�mock�patchrJr�rn�assertListEqualr�r��assert_called_with)	r9�	statement�colno�	end_colno�cached_linerWrEr��ffs	         r"�test_summary_should_show_carets�)TestStack.test_summary_should_show_caretsG
s���-�	�����(���C��L�(�	�B�������'�
�&�#�
�$��J�J�{�#�����f�b�)�	M����F�F�3�4��
��!�	M��,�,�;�;�C�@�F�F�A��!�!�!�Y�%;�%;�<����$�$�+�+�A�/D�23�2G�2G�,�I�LN�� � ��Q���+��$�$��*�*�1�Q�4�0�;�;�=�"�6�(�*@�A��{�m�,����%�%�e��
�t�L�I�I�I�I��	M�sD�B�B0�
B-�0G
�;A<G�7A/F3�&G�3
G	�=G�G�G
r�N)r�r�r�r�rhrlrrtrr�r�r�r�r�r�r�r�r�r�r�r�r$r"r_r_�sO��%�$�9�$�2�2����:�,�� F�
�8!Mr$r_c�"�\rSrSrS\4SjrSrg)�Unrepresentableij
r�c��[S5e)Nr�r�rNs r"rL�Unrepresentable.__repr__k
s���)�*�*r$r�N)r�r�r�r�rArLr�r�r$r"r�r�j
s��+�#�+r$r�c��\rSrSrSrSrg)�FalseyExceptioniq
c��gr2r�rNs r"�__bool__�FalseyException.__bool__r
���r$r�N�r�r�r�r�r�r�r�r$r"r�r�q
���r$r�c��\rSrSrSrSrg)�FalseyExceptionGroupiv
c��gr2r�rNs r"r��FalseyExceptionGroup.__bool__w
r�r$r�Nr�r�r$r"r�r�v
r�r$r�c��\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrSrSrSr\"5S5rSrSrg)�TestTracebackExceptioni{
c��Ue![ahnUn[RRU5n[RR[R"UR55nSnAOSnAff=fURSUR5 URSUR5 URSUR5 URXQR5 UR[5 UR[U5UR 5 SSS5 O!,(df   O=fURX!R"5 UR[%U5[%U55 gr2)r�rBr�r�rorrkrmrn�	__cause__�__context__�__suppress_context__r��assertWarns�DeprecationWarningr��exc_type�exc_type_strrA)r9rE�expected_type_strr��exc_obj�expected_stacks      r"�
do_test_smoke�$TestTracebackException.do_test_smoke|
s��	4��I���	4��G��.�.�=�=�a�@�C�&�3�3�;�;��!�!�!�/�/�2�4�N��	4��
	
����s�}�}�-�����s���/������ 8� 8�9�������3�
�
�
�0�
1����T�'�]�C�L�L�9�2�
1�
1�����*�,<�,<�=�����W��s�3�x�0s!��
A6�AA1�1A6�=&D,�,
D:c�:�UR[S5S5 g)NrdrA)r�rArNs r"�test_smoke_builtin�)TestTracebackException.test_smoke_builtin�
s�����:�b�>�<�8r$c�p�"SS[5n[S:XaSnOSnURU"S5U5 g)Nc��\rSrSrSrg)�ETestTracebackException.test_smoke_user_exception.<locals>.MyExceptioni�
r�Nr�r�r$r"�MyExceptionr��
���r$r�rr�zYtest.test_traceback.TestTracebackException.test_smoke_user_exception.<locals>.MyExceptionzbad things happened)r�r�r�)r9r�rFs   r"�test_smoke_user_exception�0TestTracebackException.test_smoke_user_exception�
s>��	�)�	��z�!�I�H�I�H����;�'<�=�x�Hr$c�~�SnU"5 URnURnURSUR5 URSUR5 URSUR5 URXVR5 UR[ 5 UR[#W5UR$5 SSS5 UR[#W5R&UR(5 UR[+U5[+U55 g![awnUnURn[RR	[R
"U5SSSS9Ul[RRUSSSS9Ul	SnAGN�SnAff=f!,(df   N�=f)Nc��SS- gr�r�r�r$r"r>�7TestTracebackException.test_from_exception.<locals>.foo�
rr$reFT)rryr�)r�rmrBrorrkr�r�r�rErnr�r�r�r�r�r�r�r�r�r�rA)r9r>r�r�r)r�rEs       r"�test_from_exception�*TestTracebackException.test_from_exception�
sg��	�		E��E��,�,���h�h������s�}�}�-�����s���/������ 8� 8�9�������3�
�
�
�0�
1����T�'�]�C�L�L�9�2�����g��/�/��1A�1A�B�����W��s�3�x�0��#�	E��G����B�"+�"8�"8�"@�"@��!�!�"�%�Q�U�#�#A�#%�D��!�3�3�B�B����t�C�E�D�H�H��
	E��2�
1�s$�D*�(&F.�*
F+�4A,F&�&F+�.
F<c��SS- [R"5n[RR	U5n[S5n[S5Ue![R"5n[RR	U5n[S5n[S5Ue=f![
ahnUn[RR	U5n[RR[R"UR55nSnAOSnAff=f[R"[
WS5nURXqR5 URWUR5 URSUR5 URXaR5 UR[ 5 UR[#U5UR$5 SSS5 O!,(df   O=fUR[#U5R&UR(5 UR[+U5[+U55 g)Nrer�cause�uh ohT�r;r�rBr�r�r�rorrkrmrnr�r�r�r�r�r�r�r�r�r�rA)r9rE�exc_contextrr�r�r��	exc_causes        r"r�!TestTracebackException.test_cause�
s���	4�
4��!���m�m�o��'�:�:�I�I�#�N��!�'�*����(�e�3���m�m�o��'�:�:�I�I�#�N��!�'�*����(�e�3���	4��G��.�.�=�=�a�@�C�&�3�3�;�;��!�!�!�/�/�2�4�N��	4��
�0�0��E�4�H�	�����M�M�2�����c�o�o�6�����s�7�7�8�������3�
�
�
�0�
1����T�'�]�C�L�L�9�2�
1�
1������g��/�/��1A�1A�B�����W��s�3�x�0s7�A�AB"�AB�B"�"
D�,AD�D�6&G%�%
G3c�.�SS- [R"5n[RR	U5n[S5e![R"5n[RR	U5n[S5e=f![
ahnUn[RR	U5n[RR[R"UR55nSnAOSnAff=fURSUR5 URWUR5 URSUR5 URXQR5 UR[ 5 UR[#U5UR$5 SSS5 O!,(df   O=fUR[#U5R&UR(5 UR[+U5[+U55 g)NrerrFr�r9rErr�r�r�s      r"r
�#TestTracebackException.test_context�
s~��	4�
)��!���m�m�o��'�:�:�I�I�#�N����(�(���m�m�o��'�:�:�I�I�#�N����(�(���	4��G��.�.�=�=�a�@�C�&�3�3�;�;��!�!�!�/�/�2�4�N��	4��
	
����s�}�}�-�����c�o�o�6������ 8� 8�9�������3�
�
�
�0�
1����T�'�]�C�L�L�9�2�
1�
1������g��/�/��1A�1A�B�����W��s�3�x�0s6�A�?B
�AB�B
�

C<�AC7�7C<�&F2�2
Gc	�
^�U4SjmT"5 URS5 [RR	W5n[UR
55nUR[U5[R"55 UR[UVs/sH
nSU;dMUPM sn5[R"5S-5 URSUS5 g![anUnSnAN�SnAff=fs snf)Nc�@>�SS- g![a
 T"5 gf=fr�r�rKs�r"r��9TestTracebackException.test_long_context_chain.<locals>.f�
s#���
��!���$�
���
�s�	��zException not raisedzZeroDivisionError:g�?z0RecursionError: maximum recursion depth exceededr)r�r�rBr�r�rbr&rror;r�rr)r9r�r��te�resr�r�s      @r"�test_long_context_chain�.TestTracebackException.test_long_context_chain�
s����	�	.�
�C�
�I�I�,�-�
�
)�
)�
8�
8��
A���2�9�9�;���	
���3�s�8�S�%:�%:�%<�=�����C�=�C�q�#7�1�#<��C�=�>��!�!�#�c�)�	+�	
�
�
�>��B��	I���	��G��	��>s#�C'�
D�)D�'
C=�1C8�8C=c���SS- [S5n[S5Ue![S5n[S5Ue=f![agnUn[RRUSS9n[RR[R"UR55nSnAOSnAff=f[R"[WS5nURXdR5 URSUR5 URSUR5 URXTR5 UR[5 UR[U5UR 5 SSS5 O!,(df   O=fUR[U5R"UR$5 UR['U5['U55 g)NrerrrT��compact)r�rBr�r�rorrkrmrnr�r�r�r�r�r�r�r�r�r�rA)r9rr�r�rEr�rs       r"�test_compact_with_cause�.TestTracebackException.test_compact_with_cause�
sm��
	:�
4��!��!�'�*����(�e�3��"�'�*����(�e�3���	:��G��.�.�=�=�g�t�=�T�C�&�3�3�;�;��!�!�'�"7�"7�8�:�N��	:��
�0�0��E�4�H�	�����M�M�2�����s���/�����s�7�7�8�������3�
�
�
�0�
1����T�'�]�C�L�L�9�2�
1�
1������g��/�/��1A�1A�B�����W��s�3�x�0s.��:�7�:�
B+�AB&�&B+�
&E<�<
F
c�,�SS- [R"5n[RR	U5n[S5e![R"5n[RR	U5n[S5e=f![
agnUn[RR	USS9n[RR[R"UR55nSnAOSnAff=fURSUR5 URWUR5 URSUR5 URXQR5 UR[ 5 UR[#U5UR$5 SSS5 O!,(df   O=fUR[#U5R&UR(5 UR[+U5[+U55 g)NrerrTrFrrs      r"�test_compact_no_cause�,TestTracebackException.test_compact_no_causes���	:�
)��!���m�m�o��'�:�:�I�I�#�N����(�(���m�m�o��'�:�:�I�I�#�N����(�(���	:��G��.�.�=�=�a��=�N�C�&�3�3�;�;��!�!�'�"7�"7�8�:�N��	:��
	
����s�}�}�-�����c�o�o�6������ 8� 8�9�������3�
�
�
�0�
1����T�'�]�C�L�L�9�2�
1�
1������g��/�/��1A�1A�B�����W��s�3�x�0s6�A�?B
�AB�B
�

C;�AC6�6C;�&F1�1
F?c��SS- [RRWSS9nUR	[
5 UR
UR5 SSS5 g![anUnSnANiSnAff=f!,(df   g=f)NrerF)�
save_exc_type)r�rBr�r�r�r�rGr�)r9r�rErs    r"�test_no_save_exc_type�,TestTracebackException.test_no_save_exc_type(sy��	�
�a�C��
)�
)�
8�
8��E�9�+��
�
�
�0�
1����b�k�k�*�2�
1���	��C��	��
2�
1�s"�A�A8�
A5�)A0�0A5�8
Bc��SS- [R"W5n[R"UR5n[R
R
U5nUR[R"U5U5 UR[R"UR5U5 g![anUnSnAN�SnAff=fr�)r�r;�getrefcountrmrBr�r�rn)r9r�r��refcnt1�refcnt2rEs      r"�/test_no_refs_to_exception_and_traceback_objects�FTestTracebackException.test_no_refs_to_exception_and_traceback_objects3s���	�
�a�C��/�/�'�*���/�/�'�"7�"7�8���*�*�9�9�'�B���������1�7�;��������)>�)>�?��I���	��G��	�s�B3�3
C	�=C�C	c�d�SS- UR	WW5 URX45 UR
U[55 URU[5 g![aJnUn[RRU5n[RRU5nSnAN�SnAff=fr�)	r�rBr�r��assertIsNotrnrIrJr	)r9r�r�rE�exc2s     r"�test_comparison_basic�,TestTracebackException.test_comparison_basic?s���	H�
�a�C�
	
����d�#�����#����C���*�����i�(���	H��G��.�.�=�=�g�F�C��/�/�>�>�w�G�D��	H�s�A�
B/�%AB*�*B/c��^�SmU4SjnU"5 [RRW5n[RRUSS9n[RRUSS9nUR	XE5 URXF5 [RRUSS9nURXG5 [RRUSS9n[RRUSSS	9n	UR	X�5 [RRUS
S9n
[RRUS
SS	9nURX�5 g![a
nUnSnAGN[SnAff=f)Nc�8�[S5e![a ef=frSr�r�r$r"�	raise_exc�KTestTracebackException.test_comparison_params_variations.<locals>.raise_excLs$��
� ��-�-���
��
�s�
�c�>�SupT"5 g)N)rergr�)rrkr-s  �r"�raise_with_locals�STestTracebackException.test_comparison_params_variations.<locals>.raise_with_localsRs����D�A��Kr$r�rrgTr�r)rr�rG)r�rBr�r�rnrI)
r9r0r�r�rE�exc1r(�exc3�exc4�exc5�exc6�exc7r-s
            @r"�!test_comparison_params_variations�8TestTracebackException.test_comparison_params_variationsKsW���	�	�	����*�*�9�9�'�B���+�+�:�:�7�"�:�M���+�+�:�:�7�!�:�L������#����C�&��+�+�:�:�7�SW�:�X�����C�&��+�+�:�:�7�"�:�M���+�+�:�:�7�"�]a�:�b������$��+�+�:�:�7�"�:�M���+�+�:�:�7�"�]a�:�b�����D�'��-�	��G��	�s�E�
E3�&E.�.E3c��/n[S5H	nSS- M UR
USUS5 UR
[USR55[USR555 g![a9nUR[RRU55 SnAM�SnAff=fr�)	r�r�r5rBr�r�rnrbr&)r9r�r!r�s    r"�/test_comparison_equivalent_exceptions_are_equal�FTestTracebackException.test_comparison_equivalent_exceptions_are_equalps������q��A�
L��!���
	
����a��$�q�'�*�����d�1�g�n�n�.�/��d�1�g�n�n�6F�1G�H���
L����I�8�8�G�G��J�K�K��
L�s�A:�:
B=�.B8�8B=c�R�"SS[5nU"S5nU"S5nX2e!Ua Ue!Ua
nUnSnAOSnAff=ff=f[RRU5n[	UR55nUR
SUS5 UR
SUS5 g)	Nc��\rSrSrSrSrg)�CTestTracebackException.test_unhashable.<locals>.UnhashableExceptioni{c��gr�r�r�s  r"r��JTestTracebackException.test_unhashable.<locals>.UnhashableException.__eq__|r�r$r�Nr�r�r$r"r�r?{r�r$r�r�r�zUnhashableException: ex2
rgzUnhashableException: ex1
r)r�rBr�r�rbr&rr)r9r�r�r�r�r�rE�	formatteds        r"r��&TestTracebackException.test_unhashablezs���	�)�	�"�%�(��!�%�(��	����"�	�
��	��&�
����
��	��
�*�*�9�9�'�B�������&�	��
�
�2�I�a�L�A��
�
�2�I�a�L�As#�#�A�,�?�:�A�?�Ac�>^�U4SjmT"S5 URWWR5 g![adn[RRUSS9n[RR[R"UR5SS9nSnAN�SnAff=f)Nc�6>�U(aT"US-
5 gSS- gr�r�)�n�recurses �r"rG�2TestTracebackException.test_limit.<locals>.recurse�s������!����!�r$r�rr)
r�rBr�r�rorrkrmrnr�)r9r�rEr�rGs    @r"�
test_limit�!TestTracebackException.test_limit�s����	�
	=��B�K�
	
�������3��	�	=��.�.�=�=�a�q�=�I�C�&�3�3�;�;��!�!�!�/�/�2�!�<�=�N��	=�s�.�
B�AB�Bc��[R"5 [S5n[SS5n[	USS5n[USSS5n[R"[XSS9nUR[R05 [R"S[55 URURSRS5 g)	Nrrwr�rrFrxrz)rArBr�r|r}�test_tbrBr�rnr�r{rDr�r>�r9r�rr�r)rEs      r"�test_lookup_lines�(TestTracebackException.test_lookup_lines�s��������g����i��*���q�$��%��
�Q��4��
#���*�*�9�a�%�P��������"�-����i���3�������1��*�*�L�9r$c�\�[R"S[55 [S5n[	SS5n[U[5SS[
5S.5n[USSS5n[R"[XS	S
9nURURSRSSS
S.5 g)Nrwrr�re�string)r�r��unrepresentablerrTr�r�z'string'z<local repr() failed>)
rAr{rDr�r|r}r�rLrBr�rnr�rHrMs      r"r��"TestTracebackException.test_locals�s������i���3��g����i��*���q�'�)�1�x�\k�\m�%n�o��
�Q��4��
#���*�*��q�T�3������I�I�a�L����
�G^�_�	ar$c�B�[R"S[55 [S5n[	SS5n[U[5SS05n[
USSS5n[R"[X5nURURSRS5 g)Nrwrr�r�rerr)rAr{rDr�r|r}rLrBr�rnr�rHrMs      r"r��%TestTracebackException.test_no_locals�s�����i���3��g����i��*���q�'�)�k�1�%5�6��
�Q��4��
#���*�*�9�a�<��������1��,�,�d�3r$c��[R"[[S5S5nUR[	UR55S/5 g)N�havenzException: haven
)rBr�r�rnrbr&)r9rEs  r"�test_traceback_header�,TestTracebackException.test_traceback_header�s<���*�*�9�i��6H�$�O������c�j�j�l�+�.B�-C�Dr$c���Sn[RRU"5SS9n[5nUR	US9 URUR
5RS5SS/SQ5 g)Nc�F�SnUS- g![anUsSnA$SnAff=f)N�rr�)rr�s  r"r��,TestTracebackException.test_print.<locals>.f�s(���A�
��!����
����
�s�
�
 �� � Tr�rVrir3)z    x/0r
z
    x = 12z#ZeroDivisionError: division by zeror)rBr�r�rr�rnr[r�)r9r�rEr2s    r"�
test_print�!TestTracebackException.test_print�sj��	��*�*�9�9�!�#�d�9�S������	�	�v�	������O�O��#�#�D�)�"�#�.�
�	r$c�V�[[e![a4nUR[[R
"U55 SnAOSnAff=fSS- g![a [ef=f![a4nUR[[R
"U55 SnAgSnAff=fr�)r�r9rrrrBrkr�r�)r9r�s  r"�6test_dont_swallow_cause_or_context_of_falsey_exception�MTestTracebackException.test_dont_swallow_cause_or_context_of_falsey_exception�s���
	H�!�x�/���	H��M�M�-��)C�)C�A�)F�G�G��	H��	J�
&��!���$�
&�%�%�
&���	J��M�M�/�9�+E�+E�a�+H�I�I��	J�s8�
�
A�*A�A�A�A'�'A*�*
B(�4*B#�#B()rEr�N)r�r�r�r�r�r�r�rrr
rrrrr$r)r8r;r�rIrNr�r�rXr
r^rar�r�r$r"r�r�{
s���1�"9�
I�1�21�01�,I�21�,1�,	+�
J�
)�#(�JI�B�&4�	:�
a�4�E������$Jr$r�c�^^�\rSrSrU4SjrSrSrSrSrSr	Sr
S	rS
rSr
SrU=r$)
�&TestTracebackException_ExceptionGroupsi�c�L>�[TU]5 UR5Ulgr=)r3r4�_get_exception_groupr�r8s �r"r4�,TestTracebackException_ExceptionGroups.setUp�s���
��
���+�+�-��r$c���SnSnURRUlURRUlU"5 U"S5 [SWW/5e![anUnSnAN(SnAff=f![anUnSnAN8SnAff=f![
anUnSnAOSnAff=fU"S5 O![anUnSnAOSnAff=f[SUW/5e![
anUsSnA$SnAff=f)Nc��SS- gr�r�r�r$r"r��FTestTracebackException_ExceptionGroups._get_exception_group.<locals>.f�rr$c��[U5er=r��r�s r"r�FTestTracebackException_ExceptionGroups._get_exception_group.<locals>.g�s���Q�-�r$rdr��r�)r�r��lno_f�lno_gr�r�r�)	r9r�rr�r2r(r3r4r�s	         r"rf�;TestTracebackException_ExceptionGroups._get_exception_group�s���	�	 ��Z�Z�.�.��
��Z�Z�.�.��
�	�
���C���b�E�%�U�T�4�L�9�9��
!���D����!���D����"�
����
��
��"����
����
�� ���t��5�5���	��I��	�s��A�A7�B�
A4�(A/�*B�/A4�4B�7
B
�B�B�B
�
B�
B&�B!�C�!B&�&C�*B3�2C�3
C	�=C�?C�C	�	C�
C0�$C+�%C0�+C0c���URn[R"[U5XR5n[RRU5nUR
X#5 URX#5 gr=)r�rBr�r�rmr�r'rn)r9r��teg1�teg2s    r"�!test_exception_group_construction�HTestTracebackException_ExceptionGroups.test_exception_group_constructionsY��
�W�W���+�+�D��H�b�:J�:J�K���+�+�:�:�2�>������$�����$r$c��[RRUR5nSR	UR55R
S5nSR
S5nURX#5 g)Nrriz'ExceptionGroup: eg2 (2 sub-exceptions)
�rBr�r�r�r�rCr�rn�r9�tegrBrFs    r"�*test_exception_group_format_exception_only�QTestTracebackException_ExceptionGroups.test_exception_group_format_exception_onlys\���*�*�9�9�$�'�'�B���G�G�C�5�5�7�8�>�>�t�D�	�=�C�C�D�I������-r$c���[RRUR5nSR	URSS95R
S5n/SQnURX#5 g)NrTr�ri)z&ExceptionGroup: eg2 (2 sub-exceptions)z)   ExceptionGroup: eg1 (2 sub-exceptions)z)      ZeroDivisionError: division by zeroz      ValueError: 42z   ValueError: 24rrxrys    r"�5test_exception_group_format_exception_onlyi_recursive�\TestTracebackException_ExceptionGroups.test_exception_group_format_exception_onlyi_recursivesZ���*�*�9�9�$�'�'�B���G�G�C�5�5��5�F�G�M�M�d�S�	���	
����-r$c�|�[RRUR5nSR	UR55R
S5nURnURn/SPS[SUS-S3PSPS	PS
PSPS[SUS
-S3PSPSPSPSPS[SUS-S3PSPSPS[SUS-S3PSPSPSPSPSPS[SUS-S3PSPSPS[SUS-S3PS PS!PS"PS#PS$PS[SUS%-S3PS&PS'PS[SUS-S3PS(PS)PS*PSPnURX%5 g)+Nrri�6  + Exception Group Traceback (most recent call last):z  |   File "r�r|z, in _get_exception_groupz1  |     raise ExceptionGroup("eg2", [exc3, exc4])z*  | ExceptionGroup: eg2 (2 sub-exceptions)�(  +-+---------------- 1 ----------------z8    | Exception Group Traceback (most recent call last):z    |   File "�z3    |     raise ExceptionGroup("eg1", [exc1, exc2])z,    | ExceptionGroup: eg1 (2 sub-exceptions)�*    +-+---------------- 1 ----------------z*      | Traceback (most recent call last):z      |   File "r�z      |     f()z      |     ~^^rer�z      |     1/0z      |     ~^~z+      | ZeroDivisionError: division by zero�*      +---------------- 2 ----------------�
z      |     g(42)z      |     ~^^^^rz      |     raise ValueError(v)z      | ValueError: 42�+      +------------------------------------�(    +---------------- 2 ----------------�(    | Traceback (most recent call last):r�z    |     g(24)z    |     ~^^^^z    |     raise ValueError(v)z    | ValueError: 24�)    +------------------------------------)rBr�r�r�r�r&r�rorpr�rn)r9rzrBrorprFs      r"�test_exception_group_format�BTestTracebackException_ExceptionGroups.test_exception_group_format(s����*�*�9�9�$�'�'�B���G�G�C�J�J�L�)�/�/��5�	��
�
���
�
��%�L�%�"�8�*�H�U�2�X�J�>W�X�%�H�%�A�	%�
?�%�O�
%�%�X�J�h�u�R�x�j�@Y�Z�%�J�%�C�%�A�%�A�%�'�x�j���q��	�AZ�[�%�&�%�&�%�'�x�j���q��	��H�%� &�!%�"&�#%�$B�%%�&A�'%�(A�)%�*'�x�j���r��
�B[�\�+%�,(�-%�.(�/%�0'�x�j���q��	��H�1%�26�3%�4-�5%�6B�7%�8?�9%�:?�;%�<%�X�J�h�u�R�x�j�@Y�Z�=%�>&�?%�@&�A%�B%�X�J�h�u�Q�w�i�v�F�C%�D4�E%�F+�G%�H@�I%�J�K%��N	
����-r$c��/n/n[S5HnUR[U55 M [S5HnUR[U55 M [nU"SU"SU5U"SU5/5n[
RRUSS9nSRUR55RS	5n/S
QnURXx5 g)Nr~r�r�r�r�rg)�max_group_widthrri)z)  | ExceptionGroup: eg (2 sub-exceptions)r�z,    | ExceptionGroup: eg1 (3 sub-exceptions)r�z      | ValueError: 0r��      | ValueError: 1�,      +---------------- ... ----------------z      | and 1 more exceptionr�r�z-    | ExceptionGroup: eg2 (10 sub-exceptions)r�z      | TypeError: 0r�z      | TypeError: 1r�z      | and 8 more exceptionsr�r)r�r5rAr�r�rBr�r�r�r&r�rn)	r9�excs1�excs2r�r�r�rzrBrFs	         r"�test_max_group_width�;TestTracebackException_ExceptionGroups.test_max_group_widthXs��������q��A��L�L��A��'���r��A��L�L��1��&����
��r�%��'��E�5�)9�:�
;���*�*�9�9�"�a�9�P���G�G�C�J�J�L�)�/�/��5�	���,	
����-r$c	�D�[S5n[S5H%n[S[U*5U[U5/5nM' [R
R
USS9nSRUR55RS5n/SQnURXE5 g)	Nr�r~rErg)�max_group_depthrri)z*  | ExceptionGroup: exc (3 sub-exceptions)r�z    | ValueError: -2r�z,    | ExceptionGroup: exc (3 sub-exceptions)r�z      | ValueError: -1r�z"      | ... (max_group_depth is 2)z*      +---------------- 3 ----------------r�r�z(    +---------------- 3 ----------------z    | ValueError: 2r�r)r�r�r�rArBr�r�r�r&r�rn)r9rEr�rzrBrFs      r"�test_max_group_depth�;TestTracebackException_ExceptionGroups.test_max_group_depth~s����
�#���q��A� ���Q�B���j��m�(L�M�C���*�*�9�9�#�q�9�Q���G�G�C�J�J�L�)�/�/��5�	���$	
����-r$c��URe![anUnSnAOSnAff=f[S5HnUe![a
nUnSnAMSnAff=f [R
R
W5n[R
R
U5n[R
R
USS9n[R
R
USS9nURX%5 URX%5 URX&5 URX'5 URU[55 URU[5 g)Nri,rr~)r�r�r�r�rBr�r�r'rnrIrJr	)r9r�rEr!r�r(r3�nes        r"�test_comparison�6TestTracebackException_ExceptionGroups.test_comparison�s��	��'�'�M���	��C��	���q��A�
��	���
����
���
�*�*�9�9�'�B���+�+�:�:�7�C���+�+�:�:�7�#�:�N��
�
)�
)�
8�
8���
8�
J������#�����#�����#����C�$����C���*�����i�(s%��
$��$�8�
A�A
�
Ac���[S[5[545e![aSnSR	[
R"U55nURSU5 URSU5 SnAOSnAff=fSn[S[5[U545e![aHn[
R"U5nUR[RSU3US5 SnAgSnAff=f)	N�Gihrz$+---------------- 1 ----------------z$+---------------- 2 ----------------�bool�Gahr�rG)
r�r9rr�r�rBrkrrr�r�)r9�ee�str_excr�s    r"�8test_dont_swallow_subexceptions_of_falsey_exceptiongroup�_TestTracebackException_ExceptionGroups.test_dont_swallow_subexceptions_of_falsey_exceptiongroup�s���
	K�&�u�x�z�9�;�.G�H�H���	K��g�g�i�8�8��<�=�G��M�M�@�'�J��M�M�@�'�J�J��	K����	M�&�u�x�z�?�3�;O�.P�Q�Q���	M��0�0��4�G��M�M�_�5�5�6�b���>����L�L��	M�s-� �
A=�A	A8�8A=�B"�"
C4�,>C/�/C4)r�rorp)r�r�r�r�r4rfrur{r~r�r�r�r�r�r�r�r�s@r"rdrd�s?���.�*�@%�.�.�..�`$.�L.�8)�*M�Mr$rdc��\rSrSrS*SjrSrSrSrSrSr	S	r
S
rSrSr
S
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr S r!S!r"S"r#S#r$S$r%S%r&S&r'S'r(S(r)S)r*g)+�SuggestionFormattingTestBasei�Nc�L^^�TbUU4SjnOTnURUSSS9nUS$)Nc�>�[TT5 gr=��getattr)�	attr_name�objs��r"r��=SuggestionFormattingTestBase.get_suggestion.<locals>.callable�s
�����Y�'r$r�r�r�r)r�)r9r�r�r�r�s ``  r"�get_suggestion�+SuggestionFormattingTestBase.get_suggestion�s=���� �
(��H��)�)��"��*�
���A��r$c	�&�"SS5n"SS5n"SS5n"SS5n"S	S
5n"SS5n"S
S5nUS4US4US4US4US4US4US4US44H-up�URU"5S5n
URX�5 M/ g)Nc�(�\rSrSrS=r=r=rrSrSr	g)�KSuggestionFormattingTestBase.test_getattr_suggestions.<locals>.Substitutioni�Nr�)
r�r�r�r��noise�
more_noiser�bc�blechr�r�r$r"�Substitutionr��s��*.�.�E�.�J�.��R��Er$r�c�(�\rSrSrS=r=r=rrSrSr	g)�JSuggestionFormattingTestBase.test_getattr_suggestions.<locals>.Eliminationi�Nr�)
r�r�r�r�r�r�rr��blchr�r�r$r"�Eliminationr��s��*.�.�E�.�J�.��R��Dr$r�c�(�\rSrSrS=r=r=rrSrSr	g)�GSuggestionFormattingTestBase.test_getattr_suggestions.<locals>.Additioni�Nr�)
r�r�r�r�r�r�rr��bluchinr�r�r$r"�Additionr��s��*.�.�E�.�J�.��R��Gr$r�c��\rSrSrSrSrSrg)�ZSuggestionFormattingTestBase.test_getattr_suggestions.<locals>.SubstitutionOverEliminationi�Nr�)r�r�r�r��blach�blucr�r�r$r"�SubstitutionOverEliminationr��s���E��Dr$r�c��\rSrSrSrSrSrg)�WSuggestionFormattingTestBase.test_getattr_suggestions.<locals>.SubstitutionOverAdditioni�Nr�)r�r�r�r�r��bluchir�r�r$r"�SubstitutionOverAdditionr��s���E��Fr$r�c��\rSrSrSrSrSrg)�VSuggestionFormattingTestBase.test_getattr_suggestions.<locals>.EliminationOverAdditioni�Nr�)r�r�r�r��bluchar�r�r�r$r"�EliminationOverAdditionr��s���F��Dr$r�c� �\rSrSrSrSrSrSrg)�YSuggestionFormattingTestBase.test_getattr_suggestions.<locals>.CaseChangeOverSubstitutioni�Nr�)r�r�r�r��Luch�fluch�BLuchr�r�r$r"�CaseChangeOverSubstitutionr��s���D��E��Er$r��
'bluchin'?�'blech'?�'blch'?�'blach'?�'bluc'?�'BLuch'?�bluch�r�rr)r9r�r�r�r�r�r�r��cls�
suggestionr�s           r"�test_getattr_suggestions�5SuggestionFormattingTestBase.test_getattr_suggestions�s���	�	�	�	�	�	�	�	�	�	�	�	�	�	��|�$�
�:�&�
�)�$�
�|�$�
(�*�5�
%�z�2�
$�i�0�
'��4�	 
�O�C��(�(����8�F��M�M�*�-�	 
r$c	�\�"SS5nURSURU"5S55 URSURU"5S55 URSURU"5S55 "SS5nURS	URU"5S
55 URS	URU"5S55 URS	URU"5S55 URS	UR[U"5RS
555 URS	UR[U"5RS555 URS	UR[U"5RS555 g)Nc��\rSrSrSrSrg)�LSuggestionFormattingTestBase.test_getattr_suggestions_underscored.<locals>.AiNr��r�r�r�r�r�r�r�r$r"r�r�����Er$r��'bluch'r��_luch�_bluchc��\rSrSrSrSrSrg)�LSuggestionFormattingTestBase.test_getattr_suggestions_underscored.<locals>.BiNc��[X5 gr=r�r[s  r"r��SSuggestionFormattingTestBase.test_getattr_suggestions_underscored.<locals>.B.method	s
����#r$r�)r�r�r�r�r�r�r�r�r$r"r�r�s���F�
$r$r��'_bluch'�_blachr�)rrr�rrr�)r9r�r�s   r"�$test_getattr_suggestions_underscored�ASuggestionFormattingTestBase.test_getattr_suggestions_underscored�s<��	�	�	
�
�
�i��!4�!4�Q�S�'�!B�C��
�
�i��!4�!4�Q�S�'�!B�C��
�
�i��!4�!4�Q�S�(�!C�D�	$�	$�
	
�
�
�j�$�"5�"5�a�c�8�"D�E��
�
�j�$�"5�"5�a�c�7�"C�D�����T�%8�%8���g�%F�G��
�
�j�$�"5�"5�g�a�c�j�j�(�6S�"T�U��
�
�j�$�"5�"5�g�a�c�j�j�'�6R�"S�T��
�
�j�$�"5�"5�g�a�c�j�j�'�6R�"S�Tr$c��"SS[5n"SS5n"SSX!S9nURSURUS	55 URSURU"5S	55 URS
URUS55 URS
URU"5S55 URSURUS	55 URSURU"5S	55 g)Nc��\rSrSrSrSrg)�TSuggestionFormattingTestBase.test_getattr_suggestions_with_custom___dir__.<locals>.Mic�
�SS/$)N�foxr�)r�s r"�__dir__�\SuggestionFormattingTestBase.test_getattr_suggestions_with_custom___dir__.<locals>.M.__dir__s���e�}�$r$r�N�r�r�r�r�r�r�r�r$r"�Mr�s��
%r$r�c��\rSrSrSrSrg)�USuggestionFormattingTestBase.test_getattr_suggestions_with_custom___dir__.<locals>.C0ic�
�SS/$)N.r�r�rNs r"r��]SuggestionFormattingTestBase.test_getattr_suggestions_with_custom___dir__.<locals>.C0.__dir__s���W�~�%r$r�Nr�r�r$r"�C0r�s��
&r$r�c��\rSrSrSrg)�USuggestionFormattingTestBase.test_getattr_suggestions_with_custom___dir__.<locals>.C1ir�Nr�r�r$r"�C1r�r�r$r)�	metaclassr�r�z'fox'r>)r�rr�rr)r9r�r�rs    r"�,test_getattr_suggestions_with_custom___dir__�ISuggestionFormattingTestBase.test_getattr_suggestions_with_custom___dir__s���	%��	%�	&�	&�	��	�	
����D�$7�$7��G�$D�E��
�
�i��!4�!4�R�T�7�!C�D��
�
�g�t�2�2�2�u�=�>�����$�"5�"5�b�d�E�"B�C�����D�$7�$7��G�$D�E��
�
�i��!4�!4�R�T�7�!C�Dr$c�j�"SS5nURU"5S5nURSU5 g)Nc��\rSrSrSrSrg)�cSuggestionFormattingTestBase.test_getattr_suggestions_do_not_trigger_for_long_attributes.<locals>.Ai*Nr��r�r�r�r�r�r�r�r$r"r�r*r�r$r��somethingverywrongr��r�r�r9r�r�s   r"�;test_getattr_suggestions_do_not_trigger_for_long_attributes�XSuggestionFormattingTestBase.test_getattr_suggestions_do_not_trigger_for_long_attributes)s3��	�	��$�$�Q�S�*>�?������&�)r$c�x�"SS5nSH�nURUS9 URX5nURSU5 URSU5 URSU5 URSU5 URS	U5 URS
U5 SSS5 M� g!,(df   M�=f)Nc�(�\rSrSrS=r=r=r=rrSr	g)�oSuggestionFormattingTestBase.test_getattr_error_bad_suggestions_do_not_trigger_for_small_names.<locals>.MyClassi1Nr�)
r�r�r�r��vvv�momr��id�pythor�r�r$r"�MyClassr1s��)-�-�C�-�#�-��-�B�r$r�rr��m�py�r\�Did you meanz'vvv�'mom'�'id'�'w'�'pytho'�rr�r)r9rr\r�s    r"�Atest_getattr_error_bad_suggestions_do_not_trigger_for_small_names�^SuggestionFormattingTestBase.test_getattr_error_bad_suggestions_do_not_trigger_for_small_names0s���	.�	.�*�D����4��(��,�,�W�;��� � ���8�� � ���0�� � ��&�1�� � ���0�� � ���/�� � ��F�3�)�(�*�(�(�s�A>B*�*
B9	c��"SS5n[S5Hn[USU3S5 M URU"5S5nURSU5 g)Nc��\rSrSrSrSrg)�]SuggestionFormattingTestBase.test_getattr_suggestions_do_not_trigger_for_big_dicts.<locals>.Ai?Nr�rr�r$r"r�r#?r�r$r�r��index_r�r�)r��setattrr�r)r9r�r�r�s    r"�5test_getattr_suggestions_do_not_trigger_for_big_dicts�RSuggestionFormattingTestBase.test_getattr_suggestions_do_not_trigger_for_big_dicts>sU��	�	��4�[�E��A���w�'��.�!��$�$�Q�S�'�2������&�)r$c���"SS5nURU"5S5nURSU5 "SS5nURU"5S5nURSU5 g)Nc��\rSrSrSrSrSrg)�HSuggestionFormattingTestBase.test_getattr_suggestions_no_args.<locals>.AiJNc��[5er=��AttributeError�r9�attrs  r"r]�TSuggestionFormattingTestBase.test_getattr_suggestions_no_args.<locals>.A.__getattr__Ls��$�&�&r$r��r�r�r�r�r�r]r�r�r$r"r�r*Js���E�
'r$r�r�r�c��\rSrSrSrSrSrg)r*iRNc��[er=r,r.s  r"r]r0Ts��$�$r$r�r1r�r$r"r�r*Rs���E�
%r$r�r
s   r"� test_getattr_suggestions_no_args�=SuggestionFormattingTestBase.test_getattr_suggestions_no_argsIs^��	'�	'�
�$�$�Q�S�'�2���
�
�g�v�&�	%�	%�
�$�$�Q�S�'�2���
�
�g�v�&r$c��^�"SS5m"U4SjS5n"SS5n"SS5nXU4H,nURU"5S	5nURS
U5 M. g)Nc��\rSrSrSrSrSrg)�]SuggestionFormattingTestBase.test_getattr_suggestions_invalid_args.<locals>.NonStringifyClassi[Nr�rNr�r$r"�NonStringifyClassr8[s���G��Hr$r9c�&>�\rSrSrSrU4SjrSrg)�MSuggestionFormattingTestBase.test_getattr_suggestions_invalid_args.<locals>.Ai_Nc�$>�[T"55er=r,)r9r/r9s  �r"r]�YSuggestionFormattingTestBase.test_getattr_suggestions_invalid_args.<locals>.A.__getattr__as���$�%6�%8�9�9r$r�r1)r9s�r"r�r;_s����E�
:�
:r$r�c��\rSrSrSrSrSrg)�MSuggestionFormattingTestBase.test_getattr_suggestions_invalid_args.<locals>.BidNc��[SS5e)Nrr|r,r.s  r"r]�YSuggestionFormattingTestBase.test_getattr_suggestions_invalid_args.<locals>.B.__getattr__fs��$�W�b�1�1r$r�r1r�r$r"r�r?ds���E�
2r$r�c��\rSrSrSrSrSrg)�MSuggestionFormattingTestBase.test_getattr_suggestions_invalid_args.<locals>.CiiNc��[S5e)Nr|r,r.s  r"r]�YSuggestionFormattingTestBase.test_getattr_suggestions_invalid_args.<locals>.C.__getattr__ks
��$�R�(�(r$r�r1r�r$r"r�rCis���E�
)r$r�r�r�r�)r9r�r�r�r�r�r9s      @r"�%test_getattr_suggestions_invalid_args�BSuggestionFormattingTestBase.test_getattr_suggestions_invalid_argsZs]���	�	�	:�	:�
	2�	2�
	)�	)�
�!�9�C��(�(����8�F��M�M�'�6�*�r$c�j�"SS5nURU"5S5nURSU5 g)Nc��\rSrSrSrSrg)�NSuggestionFormattingTestBase.test_getattr_suggestions_for_same_name.<locals>.Aisc��S/$)Nr�r�rNs r"r��VSuggestionFormattingTestBase.test_getattr_suggestions_for_same_name.<locals>.A.__dir__ts
���y� r$r�Nr�r�r$r"r�rJss��
!r$r�r�rr	r
s   r"�&test_getattr_suggestions_for_same_name�CSuggestionFormattingTestBase.test_getattr_suggestions_for_same_namers2��	!�	!��$�$�Q�S�'�2�������0r$c��"SS5nURU"5S5nURSU5 URSU5 g)Nc��\rSrSrSrSrSrg)�NSuggestionFormattingTestBase.test_attribute_error_with_failing_dict.<locals>.Tizrec��[S5e)N�oh no!r,rNs r"r��VSuggestionFormattingTestBase.test_attribute_error_with_failing_dict.<locals>.T.__dir__|s
��$�X�.�.r$r�N)r�r�r�r�r�r�r�r�r$r"�TrQzs���E�
/r$rU�blichr�rSr	)r9rUr�s   r"�&test_attribute_error_with_failing_dict�CSuggestionFormattingTestBase.test_attribute_error_with_failing_dictysB��	/�	/�
�$�$�Q�S�'�2������&�)�����6�*r$c��"SS5nU"5nSURS'URUS5nURSU5 g)Nc��\rSrSrSrSrg)�WSuggestionFormattingTestBase.test_attribute_error_with_non_string_candidates.<locals>.Ti�rer�Nr�r�r$r"rUr[�����Er$rUrerrVr�)�__dict__r�rr)r9rU�instancer�s    r"�/test_attribute_error_with_non_string_candidates�LSuggestionFormattingTestBase.test_attribute_error_with_non_string_candidates�sE��	�	��3�� ����!���$�$�X�w�7���
�
�g�v�&r$c�V�SnURUSSS9nURSUS5 g)Nc��[SSS9e)Nr\r|)r\r�r,r�r$r"�#raise_attribute_error_with_bad_name�lSuggestionFormattingTestBase.test_attribute_error_with_bad_name.<locals>.raise_attribute_error_with_bad_name�s�� �b�b�1�1r$rr�rJ�r�r�r9rcr�s   r"�"test_attribute_error_with_bad_name�?SuggestionFormattingTestBase.test_attribute_error_with_bad_name�s<��	2��)�)�/�R�4�*�
��	
����l�2�.�/r$c�^�"SS5m"U4SjS5nURU"5S5nURSU5 URSU5 g)Nc��\rSrSrSrSrg)�RSuggestionFormattingTestBase.test_attribute_error_inside_nested_getattr.<locals>.Ai�rer�Nr�r�r$r"r�rk�r\r$r�c�">�\rSrSrU4SjrSrg)�RSuggestionFormattingTestBase.test_attribute_error_inside_nested_getattr.<locals>.Bi�c�*>�T"5nUR$r=)rV)r9r/rr�s   �r"�__getattribute__�cSuggestionFormattingTestBase.test_attribute_error_inside_nested_getattr.<locals>.B.__getattribute__�s����C���w�w�r$r�N)r�r�r�r�ror�)r�s�r"r�rm�s
���
�
r$r�r�rr�r�)r9r�r�r�s   @r"�*test_attribute_error_inside_nested_getattr�GSuggestionFormattingTestBase.test_attribute_error_inside_nested_getattr�sI���	�	�	�	�
�$�$�Q�S�+�6���
�
�n�f�-��
�
�g�v�&r$c��[[R"55nUR[R
U5 [RR[U55 UR[RR5 SR[R"[RSS95nX#S--nUR!U5 U$)Nrr�)r�z.py)r�tempfile�mkdtemprr�shutil�rmtreer;�pathr5rA�popr��random�choicesrQ�
ascii_letters�
write_text)r9r�tmpdir�mod_name�modules     r"�make_module�(SuggestionFormattingTestBase.make_module�s����h�&�&�(�)������
�
�v�.�������F��$���������%��7�7�6�>�>�&�*>�*>�"�E�F���e�+�,�����$���r$c�^^^�TRU5mUUU4SjnTR[T5 TRUSSS9nUS$)Nc�>�[STST35 g![anUSeSnAf[a'nTRS[	U535 SnAgSnAff=f)Nzfrom z import zExpected ImportError but got )rKr�r�r�r�)r��modnamer\r9s ���r"r��ISuggestionFormattingTestBase.get_import_from_suggestion.<locals>.callable�s\���
E��u�W�I�X�d�V�4�5���
"��T�!���
E��	�	�9�$�q�'��C�D�D��
E�s��
A�"�
A�A�Arr�r)r�rrrr�)r9rr\r�r�r�s` `  @r"�get_import_from_suggestion�7SuggestionFormattingTestBase.get_import_from_suggestion�sQ����"�"�4�(��	E�	
�����(��)�)��"��*�
���A��r$c	���[R"S5n[R"S5n[R"S5n[R"S5n[R"S5n[R"S5n[R"S5nUS4US	4US
4US4US4US4US4US
44H(up�URUS5n
URX�5 M* g)NzP            noise = more_noise = a = bc = None
            blech = None
        zP
            noise = more_noise = a = bc = None
            blch = None
        zS
            noise = more_noise = a = bc = None
            bluchin = None
        z:
            blach = None
            bluc = None
        z<
            blach = None
            bluchi = None
        z;
            blucha = None
            bluc = None
        zS
            Luch = None
            fluch = None
            BLuch = None
        r�r�r�r�r�r�r�)r�r�r�rr)r9�substitution�elimination�addition�substitutionOverElimination�substitutionOverAddition�eliminationOverAddition�caseChangeOverSubstitutionrr�r�s           r"�test_import_from_suggestions�9SuggestionFormattingTestBase.test_import_from_suggestions�s�����(�
��
�o�o�'�
��
�?�?�$�
��
'/�o�o�7�'
�#�
$,�?�?�4�$
� �
#+�/�/�3�#
��
&.�_�_�6�&
�"��|�$�
�:�&�
�)�$�
�|�$�
(�*�5�
%�z�2�
$�i�0�
'��4�	!
��D��4�4�T�7�C�F��M�M�*�-�	!
r$c��SnURSURUS55 URSURUS55 URSURUS55 SnURSURUS55 URSURUS55 URSURUS	55 g)
Nzbluch = Noner�r�r�r�z
_bluch = Noner�r�r�)rrr�r)r9rs  r"�(test_import_from_suggestions_underscored�ESuggestionFormattingTestBase.test_import_from_suggestions_underscored�s������
�
�i��!@�!@��w�!O�P��
�
�i��!@�!@��w�!O�P��
�
�i��!@�!@��x�!P�Q����
�
�j�$�"A�"A�$��"Q�R��
�
�j�$�"A�"A�$��"P�Q�����T�%D�%D�T�7�%S�Tr$c�t�[R"S5nURSURUS55 g)Nz;            globals()[0] = 1
            bluch = 1
        r�r�)r�r�rrr�)r9�modWithNonStringAttrs  r"�'test_import_from_suggestions_non_string�DSuggestionFormattingTestBase.test_import_from_suggestions_non_string�s5��'���0� 
��	
�
�
�i��!@�!@�AU�W^�!_�`r$c�P�SnURUS5nURSU5 g)Nzblech = Nonerr�r	)r9rr�s   r"�?test_import_from_suggestions_do_not_trigger_for_long_attributes�\SuggestionFormattingTestBase.test_import_from_suggestions_do_not_trigger_for_long_attributess*�����$�$�T�+?�@������&�)r$c�h�SnSH�nURUS9 URX5nURSU5 URSU5 URSU5 URSU5 URSU5 URS	U5 SSS5 M� g!,(df   M�=f)
Nz!vvv = mom = w = id = pytho = Nonerrrz'vvv'rrrr)rr�r)r9rr\r�s    r"�Etest_import_from_error_bad_suggestions_do_not_trigger_for_small_names�bSuggestionFormattingTestBase.test_import_from_error_bad_suggestions_do_not_trigger_for_small_names
s���2��)�D����4��(��8�8��D��� � ���8�� � ��&�1�� � ��&�1�� � ���0�� � ���/�� � ��F�3�)�(�*�(�(�s�A>B"�"
B1	c���[S5Vs/sH	nSUS3PM nnURS5 SRU5nURUS5nUR	SU5 gs snf)N��r$z = z Nonerwr�r�)r�r5r�r�r)r9r��chunksrr�s     r"�>test_import_from_suggestions_do_not_trigger_for_big_namespaces�[SuggestionFormattingTestBase.test_import_from_suggestions_do_not_trigger_for_big_namespacessd��38��:�>�:�%�F�5�'��%�:��>��
�
�g���x�x�����0�0��w�?������&�)��	?s�A'c�V�SnURUSSS9nURSUS5 g)Nc��[SSSS9e)Nr\r|r�)r\r��	name_from)r�r�r$r"rc�nSuggestionFormattingTestBase.test_import_from_error_with_bad_name.<locals>.raise_attribute_error_with_bad_name s���2�2��<�<r$rr�rJrerfs   r"�$test_import_from_error_with_bad_name�ASuggestionFormattingTestBase.test_import_from_error_with_bad_names<��	=��)�)�/�R�4�*�
��	
����l�2�.�/r$c��SnSnSnSnSnSnUS4US4US	4US
4US4US44H'upxURU5n	URX�5 M) g)Nc�4�S=n=n=p#Sn[[5 gr=�r�r�)r�r�rr�r�s     r"r��NSuggestionFormattingTestBase.test_name_error_suggestions.<locals>.Substitution)s ��*.�.�E�.�J�.���E��%�Lr$c�4�S=n=n=p#Sn[[5 gr=r�)r�r�rr�r�s     r"r��MSuggestionFormattingTestBase.test_name_error_suggestions.<locals>.Elimination.s ��*.�.�E�.�J�.���D��%�Lr$c�4�S=n=n=p#Sn[[5 gr=r�)r�r�rr�r�s     r"r��JSuggestionFormattingTestBase.test_name_error_suggestions.<locals>.Addition3s ��*.�.�E�.�J�.���G��%�Lr$c�*�SnSn[[5 gr=r�)r�r�s  r"r��]SuggestionFormattingTestBase.test_name_error_suggestions.<locals>.SubstitutionOverElimination8s���E��D��%�Lr$c�*�SnSn[[5 gr=r�)r�r�s  r"r��ZSuggestionFormattingTestBase.test_name_error_suggestions.<locals>.SubstitutionOverAddition=s���E��F��%�Lr$c�*�SnSn[[5 gr=r�)r�r�s  r"r��YSuggestionFormattingTestBase.test_name_error_suggestions.<locals>.EliminationOverAdditionBs���F��D��%�Lr$r�r�r�z	'blucha'?r�r�)
r9r�r�r�r�r�r�rDr�r�s
          r"�test_name_error_suggestions�8SuggestionFormattingTestBase.test_name_error_suggestions(s���	�
	�
	�
	�
	�
	�
#/�
�!;�!,�i� 8�!)�<� 8�!8�+� F�!<�j� I�!9�:� F�!H��D��(�(��.�F��M�M�*�-�!Hr$c�P�SnURU5nURSU5 g)Nc�"�[[5 gr=)r��global_for_suggestior�r$r"rD�SSuggestionFormattingTestBase.test_name_error_suggestions_from_globals.<locals>.funcQs���&�'r$z'global_for_suggestions'?r��r9rDr�s   r"�(test_name_error_suggestions_from_globals�ESuggestionFormattingTestBase.test_name_error_suggestions_from_globalsPs&��	(��$�$�T�*���
�
�1�6�:r$c�P�SnURU5nURSU5 g)Nc�"�[[5 gr=)r��ZeroDivisionErrrrrr�r$r"rD�TSuggestionFormattingTestBase.test_name_error_suggestions_from_builtins.<locals>.funcWs���$�%r$�'ZeroDivisionError'?r�r�s   r"�)test_name_error_suggestions_from_builtins�FSuggestionFormattingTestBase.test_name_error_suggestions_from_builtinsVs&��	&��$�$�T�*���
�
�,�f�5r$c�P�SnURU5nURSU5 g)Nc�p�[5R5n[US'[[	SU55 g)N�__builtins__r�)rD�copyr�r��eval)�custom_globalss r"rD�lSuggestionFormattingTestBase.test_name_error_suggestions_from_builtins_when_builtins_is_module.<locals>.func]s*��$�Y�^�^�-�N�-5�N�>�*��$�+�^�<�=r$r�r�r�s   r"�Atest_name_error_suggestions_from_builtins_when_builtins_is_module�^SuggestionFormattingTestBase.test_name_error_suggestions_from_builtins_when_builtins_is_module\s(��	>��$�$�T�*���
�
�,�f�5r$c�P�SnURU5nURSU5 g)Nc�~�Sn[5R5nSUS'[[SU[	555 g)Nrer�abv)rDr�r�r�rH)�abcr�s  r"rD�aSuggestionFormattingTestBase.test_name_error_suggestions_with_non_string_candidates.<locals>.funces2���C�$�Y�^�^�-�N� !�N�1���$�u�n�f�h�7�8r$r�r�r�s   r"�6test_name_error_suggestions_with_non_string_candidates�SSuggestionFormattingTestBase.test_name_error_suggestions_with_non_string_candidatesds'��	9�
�$�$�T�*���
�
�e�V�$r$c�P�SnURU5nURSU5 g)Nc�&�Sn[[5 gr=)r��somethingverywronghe)�somethingverywronghehehehehehes r"rD�dSuggestionFormattingTestBase.test_name_error_suggestions_do_not_trigger_for_long_names.<locals>.funcns��-1�*��&�'r$�somethingverywrongheher	r�s   r"�9test_name_error_suggestions_do_not_trigger_for_long_names�VSuggestionFormattingTestBase.test_name_error_suggestions_do_not_trigger_for_long_namesms*��	(��$�$�T�*�����1�6�:r$c��SnSnSnSnSU4SU4SU4SU44H�upVURUS	9 URU5nURS
U5 URSU5 URSU5 URS
U5 URSU5 URSU5 SSS5 M� g!,(df   M�=f)Nc�"�S=n=n=n=p4[ gr=r/�rrr�rrs     r"�f_b�hSuggestionFormattingTestBase.test_name_error_bad_suggestions_do_not_trigger_for_small_names.<locals>.f_bv���)-�-�C�-�#�-��-�B�
r$c�"�S=n=n=n=p4[ gr=rlr�s     r"�f_v�hSuggestionFormattingTestBase.test_name_error_bad_suggestions_do_not_trigger_for_small_names.<locals>.f_vzr�r$c�"�S=n=n=n=p4[ gr=)rr�s     r"�f_m�hSuggestionFormattingTestBase.test_name_error_bad_suggestions_do_not_trigger_for_small_names.<locals>.f_m~r�r$c�"�S=n=n=n=p4[ gr=)rr�s     r"�f_py�iSuggestionFormattingTestBase.test_name_error_bad_suggestions_do_not_trigger_for_small_names.<locals>.f_py�s��)-�-�C�-�#�-��-�B�r$rr�rrrzyou meanrrrrrr)r9r�r�r�r�r\rDr�s        r"�>test_name_error_bad_suggestions_do_not_trigger_for_small_names�[SuggestionFormattingTestBase.test_name_error_bad_suggestions_do_not_trigger_for_small_namests���	�	�	�	� ��:��S�z�C��:��d�|�L�J�D����4��(��,�,�T�2��� � ��V�4�� � ���/�� � ���/�� � ���0�� � ���/�� � ��F�3�)�(�M�(�(�s�A>B:�:
C		c�P�SnURU5nURUS5 g)Nc���S=n=n=n=n=n=n=n=n=n=n	=n
=n=n=n
=n=n=n=n=n=n=n=n=n=n=n=n=n=n=n=n=n=n=n =n!=n"=n#=n$=n%=n&=n'=n(=n)=n*=n+=n,=n-=n.=n/=n0=n1=n2=n3=n4=n5=n6=n7=n8=n9=n:=n;=n<=n==n>=n?=n@=nA=nB=nC=nD=nE=nF=nG=nH=nI=nJ=nK=nL=nM=nN=nO=nP=nQ=nR=nS=nT=nU=nV=nW=nX=nY=nZ=n[=n\=n]=n^=n_=n`=na=nb=nc=nd=ne=nf=ng=nh=ni=nj=nk=nl=nm=nn=no=np=nq=nr=ns=nt=nu=nv=nw=nx=ny=nz=n{=n|=n}=n~=n=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=n�=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn	=Gn
=Gn=Gn=Gn
=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn =Gn!=Gn"=Gn#=Gn$=Gn%=Gn&=Gn'=Gn(=Gn)=Gn*=Gn+=Gn,=Gn-=Gn.=Gn/=Gn0=Gn1=Gn2=Gn3=Gn4=Gn5=Gn6=Gn7=Gn8=Gn9=Gn:=Gn;=Gn<=Gn==Gn>=Gn?=Gn@=GnA=GnB=GnC=GnD=GnE=GnF=GnG=GnH=GnI=GnJ=GnK=GnL=GnM=GnN=GnO=GnP=GnQ=GnR=GnS=GnT=GnU=GnV=GnW=GnX=GnY=GnZ=Gn[=Gn\=Gn]=Gn^=Gn_=Gn`=Gna=Gnb=Gnc=Gnd=Gne=Gnf=Gng=Gnh=Gni=Gnj=Gnk=Gnl=Gnm=Gnn=Gno=Gnp=Gnq=Gnr=Gns=Gnt=Gnu=Gnv=Gnw=Gnx=Gny=Gnz=Gn{=Gn|=Gn}=Gn~=Gn=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn	=Gn
=Gn=Gn=Gn
=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn =Gn!=Gn"=Gn#=Gn$=Gn%=Gn&=Gn'=Gn(=Gn)=Gn*=Gn+=Gn,=Gn-=Gn.=Gn/=Gn0=Gn1=Gn2=Gn3=Gn4=Gn5=Gn6=Gn7=Gn8=Gn9=Gn:=Gn;=Gn<=Gn==Gn>=Gn?=Gn@=GnA=GnB=GnC=GnD=GnE=GnF=GnG=GnH=GnI=GnJ=GnK=GnL=GnM=GnN=GnO=GnP=GnQ=GnR=GnS=GnT=GnU=GnV=GnW=GnX=GnY=GnZ=Gn[=Gn\=Gn]=Gn^=Gn_=Gn`=Gna=Gnb=Gnc=Gnd=Gne=Gnf=Gng=Gnh=Gni=Gnj=Gnk=Gnl=Gnm=Gnn=Gno=Gnp=Gnq=Gnr=Gns=Gnt=Gnu=Gnv=Gnw=Gnx=Gny=Gnz=Gn{=Gn|=Gn}=Gn~=Gn=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn�=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn	=Gn
=Gn=Gn=Gn
=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=Gn=GnGn[[5 gr=)r��a0( �a1�a2�a3�a4�a5�a6�a7�a8�a9�a10�a11�a12�a13�a14�a15�a16�a17�a18�a19�a20�a21�a22�a23�a24�a25�a26�a27�a28�a29�a30�a31�a32�a33�a34�a35�a36�a37�a38�a39�a40�a41�a42�a43�a44�a45�a46�a47�a48�a49�a50�a51�a52�a53�a54�a55�a56�a57�a58�a59�a60�a61�a62�a63�a64�a65�a66�a67�a68�a69�a70�a71�a72�a73�a74�a75�a76�a77�a78�a79�a80�a81�a82�a83�a84�a85�a86�a87�a88�a89�a90�a91�a92�a93�a94�a95�a96�a97�a98�a99�a100�a101�a102�a103�a104�a105�a106�a107�a108�a109�a110�a111�a112�a113�a114�a115�a116�a117�a118�a119�a120�a121�a122�a123�a124�a125�a126�a127�a128�a129�a130�a131�a132�a133�a134�a135�a136�a137�a138�a139�a140�a141�a142�a143�a144�a145�a146�a147�a148�a149�a150�a151�a152�a153�a154�a155�a156�a157�a158�a159�a160�a161�a162�a163�a164�a165�a166�a167�a168�a169�a170�a171�a172�a173�a174�a175�a176�a177�a178�a179�a180�a181�a182�a183�a184�a185�a186�a187�a188�a189�a190�a191�a192�a193�a194�a195�a196�a197�a198�a199�a200�a201�a202�a203�a204�a205�a206�a207�a208�a209�a210�a211�a212�a213�a214�a215�a216�a217�a218�a219�a220�a221�a222�a223�a224�a225�a226�a227�a228�a229�a230�a231�a232�a233�a234�a235�a236�a237�a238�a239�a240�a241�a242�a243�a244�a245�a246�a247�a248�a249�a250�a251�a252�a253�a254�a255�a256�a257�a258�a259�a260�a261�a262�a263�a264�a265�a266�a267�a268�a269�a270�a271�a272�a273�a274�a275�a276�a277�a278�a279�a280�a281�a282�a283�a284�a285�a286�a287�a288�a289�a290�a291�a292�a293�a294�a295�a296�a297�a298�a299�a300�a301�a302�a303�a304�a305�a306�a307�a308�a309�a310�a311�a312�a313�a314�a315�a316�a317�a318�a319�a320�a321�a322�a323�a324�a325�a326�a327�a328�a329�a330�a331�a332�a333�a334�a335�a336�a337�a338�a339�a340�a341�a342�a343�a344�a345�a346�a347�a348�a349�a350�a351�a352�a353�a354�a355�a356�a357�a358�a359�a360�a361�a362�a363�a364�a365�a366�a367�a368�a369�a370�a371�a372�a373�a374�a375�a376�a377�a378�a379�a380�a381�a382�a383�a384�a385�a386�a387�a388�a389�a390�a391�a392�a393�a394�a395�a396�a397�a398�a399�a400�a401�a402�a403�a404�a405�a406�a407�a408�a409�a410�a411�a412�a413�a414�a415�a416�a417�a418�a419�a420�a421�a422�a423�a424�a425�a426�a427�a428�a429�a430�a431�a432�a433�a434�a435�a436�a437�a438�a439�a440�a441�a442�a443�a444�a445�a446�a447�a448�a449�a450�a451�a452�a453�a454�a455�a456�a457�a458�a459�a460�a461�a462�a463�a464�a465�a466�a467�a468�a469�a470�a471�a472�a473�a474�a475�a476�a477�a478�a479�a480�a481�a482�a483�a484�a485�a486�a487�a488�a489�a490�a491�a492�a493�a494�a495�a496�a497�a498�a499�a500�a501�a502�a503�a504�a505�a506�a507�a508�a509�a510�a511�a512�a513�a514�a515�a516�a517�a518�a519�a520�a521�a522�a523�a524�a525�a526�a527�a528�a529�a530�a531�a532�a533�a534�a535�a536�a537�a538�a539�a540�a541�a542�a543�a544�a545�a546�a547�a548�a549�a550�a551�a552�a553�a554�a555�a556�a557�a558�a559�a560�a561�a562�a563�a564�a565�a566�a567�a568�a569�a570�a571�a572�a573�a574�a575�a576�a577�a578�a579�a580�a581�a582�a583�a584�a585�a586�a587�a588�a589�a590�a591�a592�a593�a594�a595�a596�a597�a598�a599�a600�a601�a602�a603�a604�a605�a606�a607�a608�a609�a610�a611�a612�a613�a614�a615�a616�a617�a618�a619�a620�a621�a622�a623�a624�a625�a626�a627�a628�a629�a630�a631�a632�a633�a634�a635�a636�a637�a638�a639�a640�a641�a642�a643�a644�a645�a646�a647�a648�a649�a650�a651�a652�a653�a654�a655�a656�a657�a658�a659�a660�a661�a662�a663�a664�a665�a666�a667�a668�a669�a670�a671�a672�a673�a674�a675�a676�a677�a678�a679�a680�a681�a682�a683�a684�a685�a686�a687�a688�a689�a690�a691�a692�a693�a694�a695�a696�a697�a698�a699�a700�a701�a702�a703�a704�a705�a706�a707�a708�a709�a710�a711�a712�a713�a714�a715�a716�a717�a718�a719�a720�a721�a722�a723�a724�a725�a726�a727�a728�a729�a730�a731�a732�a733�a734�a735�a736�a737�a738�a739�a740�a741�a742�a743�a744�a745�a746�a747�a748�a749�a750�a751�a752�a753�a754�a755�a756�a757�a758�a759�a760�a761�a762�a763�a764�a765�a766�a767�a768�a769�a770�a771�a772�a773�a774�a775�a776�a777�a778�a779�a780�a781�a782�a783�a784�a785�a786�a787�a788�a789�a790�a791�a792�a793�a794�a795�a796�a797�a798�a799�a800s                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 r"rD�iSuggestionFormattingTestBase.test_name_error_suggestions_do_not_trigger_for_too_many_locals.<locals>.func�sO'��d�aP
�B�P
��P
�b�P
�2�P
��P
�R�P
�"�P
�r�P
�B�P
��P
��P
��P
��P
�!�P
�$'�P
�*-�P
�03�P
�69�P
�<?�P
�BE�P
��P
��P
��P
�!�P
�$'�P
�*-�P
�03�P
�69�P
�<?�P
�BE�P
�
�P
��P
��P
�"�P
�%(�P
�+.�P
�14�P
�7:�P
�=@�P
�CF�P
�
�	P
��	P
��	P
�"�	P
�%(�	P
�+.�	P
�14�	P
�7:�	P
�=@�	P
�CF�	P
�

�P
�
�P
�
�P
�
"�P
�
%(�P
�
+.�P
�
14�P
�
7:�P
�
=@�P
�
CF�P
�
�
P
��
P
��
P
�"�
P
�%(�
P
�+.�
P
�14�
P
�7:�
P
�=@�
P
�CF�
P
�
�P
��P
��P
�"�P
�%(�P
�+.�P
�14�P
�7:�P
�=@�P
�CF�P
�
�P
��P
��P
�"�P
�%(�P
�+.�P
�14�P
�7:�P
�=@�P
�CF�P
�
�P
��P
��P
�"�P
�%(�P
�+.�P
�14�P
�7:�P
�=@�P
�CG�P
�
�P
��P
��P
�"&�P
�)-�P
�04�P
�7;�P
�>B�P
�EI�P
�LP�P
�
�P
��P
��P
�"&�P
�)-�P
�04�P
�7;�P
�>B�P
�EI�P
�LP�P
�
�P
��P
��P
�"&�P
�)-�P
�04�P
�7;�P
�>B�P
�EI�P
�LP�P
�
�P
��P
��P
�"&�P
�)-�P
�04�P
�7;�P
�>B�P
�EI�P
�LP�P
�
�P
��P
��P
�"&�P
�)-�P
�04�P
�7;�P
�>B�P
�EI�P
�LP�P
�
�P
��P
��P
�"&�P
�)-�P
�04�P
�7;�P
�>B�P
�EI�P
�LP�P
� 
�!P
� �!P
� �!P
� "&�!P
� )-�!P
� 04�!P
� 7;�!P
� >B�!P
� EI�!P
� LP�!P
�"
�#P
�"�#P
�"�#P
�""&�#P
�")-�#P
�"04�#P
�"7;�#P
�">B�#P
�"EI�#P
�"LP�#P
�$
�%P
�$�%P
�$�%P
�$"&�%P
�$)-�%P
�$04�%P
�$7;�%P
�$>B�%P
�$EI�%P
�$LP�%P
�&
�'P
�&�'P
�&�'P
�&"&�'P
�&)-�'P
�&04�'P
�&7;�'P
�&>B�'P
�&EI�'P
�&LP�'P
�(
�)P
�(�)P
�(�)P
�("&�)P
�()-�)P
�(04�)P
�(7;�)P
�(>B�)P
�(EI�)P
�(LP�)P
�*
�+P
�*�+P
�*�+P
�*"&�+P
�*)-�+P
�*04�+P
�*7;�+P
�*>B�+P
�*EI�+P
�*LP�+P
�,
�-P
�,�-P
�,�-P
�,"&�-P
�,)-�-P
�,04�-P
�,7;�-P
�,>B�-P
�,EI�-P
�,LP�-P
�.
�/P
�.�/P
�.�/P
�."&�/P
�.)-�/P
�.04�/P
�.7;�/P
�.>B�/P
�.EI�/P
�.LP�/P
�0
�1P
�0�1P
�0�1P
�0"&�1P
�0)-�1P
�004�1P
�07;�1P
�0>B�1P
�0EI�1P
�0LP�1P
�2
�3P
�2�3P
�2�3P
�2"&�3P
�2)-�3P
�204�3P
�27;�3P
�2>B�3P
�2EI�3P
�2LP�3P
�4
�5P
�4�5P
�4�5P
�4"&�5P
�4)-�5P
�404�5P
�47;�5P
�4>B�5P
�4EI�5P
�4LP�5P
�6
�7P
�6�7P
�6�7P
�6"&�7P
�6)-�7P
�604�7P
�67;�7P
�6>B�7P
�6EI�7P
�6LP�7P
�8
�9P
�8�9P
�8�9P
�8"&�9P
�8)-�9P
�804�9P
�87;�9P
�8>B�9P
�8EI�9P
�8LP�9P
�:
�;P
�:�;P
�:�;P
�:"&�;P
�:)-�;P
�:04�;P
�:7;�;P
�:>B�;P
�:EI�;P
�:LP�;P
�<
�=P
�<�=P
�<�=P
�<"&�=P
�<)-�=P
�<04�=P
�<7;�=P
�<>B�=P
�<EI�=P
�<LP�=P
�>
�?P
�>�?P
�>�?P
�>"&�?P
�>)-�?P
�>04�?P
�>7;�?P
�>>B�?P
�>EI�?P
�>LP�?P
�@
�AP
�@�AP
�@�AP
�@"&�AP
�@)-�AP
�@04�AP
�@7;�AP
�@>B�AP
�@EI�AP
�@LP�AP
�B
�CP
�B�CP
�B�CP
�B"&�CP
�B)-�CP
�B04�CP
�B7;�CP
�B>B�CP
�BEI�CP
�BLP�CP
�D
�EP
�D�EP
�D�EP
�D"&�EP
�D)-�EP
�D04�EP
�D7;�EP
�D>B�EP
�DEI�EP
�DLP�EP
�F
�GP
�F�GP
�F�GP
�F"&�GP
�F)-�GP
�F04�GP
�F7;�GP
�F>B�GP
�FEI�GP
�FLP�GP
�H
�IP
�H�IP
�H�IP
�H"&�IP
�H)-�IP
�H04�IP
�H7;�IP
�H>B�IP
�HEI�IP
�HLP�IP
�J
�KP
�J�KP
�J�KP
�J"&�KP
�J)-�KP
�J04�KP
�J7;�KP
�J>B�KP
�JEI�KP
�JLP�KP
�L
�MP
�L�MP
�L�MP
�L"&�MP
�L)-�MP
�L04�MP
�L7;�MP
�L>B�MP
�LEI�MP
�LLP�MP
�N
�OP
�N�OP
�N�OP
�N"&�OP
�N)-�OP
�N04�OP
�N7;�OP
�N>B�OP
�NEI�OP
�NLP�OP
�P
�QP
�P�QP
�P�QP
�P"&�QP
�P)-�QP
�P04�QP
�P7;�QP
�P>B�QP
�PEI�QP
�PLP�QP
�R
�SP
�R�SP
�R�SP
�R"&�SP
�R)-�SP
�R04�SP
�R7;�SP
�R>B�SP
�REI�SP
�RLP�SP
�T
�UP
�T�UP
�T�UP
�T"&�UP
�T)-�UP
�T04�UP
�T7;�UP
�T>B�UP
�TEI�UP
�TLP�UP
�V
�WP
�V�WP
�V�WP
�V"&�WP
�V)-�WP
�V04�WP
�V7;�WP
�V>B�WP
�VEI�WP
�VLP�WP
�X
�YP
�X�YP
�X�YP
�X"&�YP
�X)-�YP
�X04�YP
�X7;�YP
�X>B�YP
�XEI�YP
�XLP�YP
�Z
�[P
�Z�[P
�Z�[P
�Z"&�[P
�Z)-�[P
�Z04�[P
�Z7;�[P
�Z>B�[P
�ZEI�[P
�ZLP�[P
�\
�]P
�\�]P
�\�]P
�\"&�]P
�\)-�]P
�\04�]P
�\7;�]P
�\>B�]P
�\EI�]P
�\LP�]P
�^
�_P
�^�_P
�^�_P
�^"&�_P
�^)-�_P
�^04�_P
�^7;�_P
�^>B�_P
�^EI�_P
�^LP�_P
�`
�aP
�`�aP
�`�aP
�`"&�aP
�`)-�aP
�`04�aP
�`7;�aP
�`>B�aP
�`EI�aP
�`LP�aP
�b
�cP
�b�cP
�b�cP
�b"&�cP
�b)-�cP
�b04�cP
�b7;�cP
�b>B�cP
�bEI�cP
�bLP�cP
�d
�eP
�d�eP
�d�eP
�d"&�eP
�d)-�eP
�d04�eP
�d7;�eP
�d>B�eP
�dEI�eP
�dLP�eP
�f
�gP
�f�gP
�f�gP
�f"&�gP
�f)-�gP
�f04�gP
�f7;�gP
�f>B�gP
�fEI�gP
�fLP�gP
�h
�iP
�h�iP
�h�iP
�h"&�iP
�h)-�iP
�h04�iP
�h7;�iP
�h>B�iP
�hEI�iP
�hLP�iP
�j
�kP
�j�kP
�j�kP
�j"&�kP
�j)-�kP
�j04�kP
�j7;�kP
�j>B�kP
�jEI�kP
�jLP�kP
�l
�mP
�l�mP
�l�mP
�l"&�mP
�l)-�mP
�l04�mP
�l7;�mP
�l>B�mP
�lEI�mP
�lLP�mP
�n
�oP
�n�oP
�n�oP
�n"&�oP
�n)-�oP
�n04�oP
�n7;�oP
�n>B�oP
�nEI�oP
�nLP�oP
�p
�qP
�p�qP
�p�qP
�p"&�qP
�p)-�qP
�p04�qP
�p7;�qP
�p>B�qP
�pEI�qP
�pLP�qP
�r
�sP
�r�sP
�r�sP
�r"&�sP
�r)-�sP
�r04�sP
�r7;�sP
�r>B�sP
�rEI�sP
�rLP�sP
�t
�uP
�t�uP
�t�uP
�t"&�uP
�t)-�uP
�t04�uP
�t7;�uP
�t>B�uP
�tEI�uP
�tLP�uP
�v
�wP
�v�wP
�v�wP
�v"&�wP
�v)-�wP
�v04�wP
�v7;�wP
�v>B�wP
�vEI�wP
�vLP�wP
�x
�yP
�x�yP
�x�yP
�x"&�yP
�x)-�yP
�x04�yP
�x7;�yP
�x>B�yP
�xEI�yP
�xLP�yP
�z
�{P
�z�{P
�z�{P
�z"&�{P
�z)-�{P
�z04�{P
�z7;�{P
�z>B�{P
�zEI�{P
�zLP�{P
�|
�}P
�|�}P
�|�}P
�|"&�}P
�|)-�}P
�|04�}P
�|7;�}P
�|>B�}P
�|EI�}P
�|LP�}P
�~
�P
�~�P
�~�P
�~"&�P
�~)-�P
�~04�P
�~7;�P
�~>B�P
�~EI�P
�~LP�P
�@
�AP
�@�AP
�@�AP
�@"&�AP
�@)-�AP
�@04�AP
�@7;�AP
�@>B�AP
�@EI�AP
�@LP�AP
�B
�CP
�B�CP
�B�CP
�B"&�CP
�B)-�CP
�B04�CP
�B7;�CP
�B>B�CP
�BEI�CP
�BLP�CP
�D
�EP
�D�EP
�D�EP
�D"&�EP
�D)-�EP
�D04�EP
�D7;�EP
�D>B�EP
�DEI�EP
�DLP�EP
�F
�GP
�F�GP
�F�GP
�F"&�GP
�F)-�GP
�F04�GP
�F7;�GP
�F>B�GP
�FEI�GP
�FLP�GP
�H
�IP
�H�IP
�H�IP
�H"&�IP
�H)-�IP
�H04�IP
�H7;�IP
�H>B�IP
�HEI�IP
�HLP�IP
�J
�KP
�J�KP
�J�KP
�J"&�KP
�J)-�KP
�J04�KP
�J7;�KP
�J>B�KP
�JEI�KP
�JLP�KP
�L
�MP
�L�MP
�L�MP
�L"&�MP
�L)-�MP
�L04�MP
�L7;�MP
�L>B�MP
�LEI�MP
�LLP�MP
�N
�OP
�N�OP
�N�OP
�N"&�OP
�N)-�OP
�N04�OP
�N7;�OP
�N>B�OP
�NEI�OP
�NLP�OP
�P
�QP
�P�QP
�P�QP
�P"&�QP
�P)-�QP
�P04�QP
�P7;�QP
�P>B�QP
�PEI�QP
�PLP�QP
�R
�SP
�R�SP
�R�SP
�R"&�SP
�R)-�SP
�R04�SP
�R7;�SP
�R>B�SP
�REI�SP
�RLP�SP
�T
�UP
�T�UP
�T�UP
�T"&�UP
�T)-�UP
�T04�UP
�T7;�UP
�T>B�UP
�TEI�UP
�TLP�UP
�V
�WP
�V�WP
�V�WP
�V"&�WP
�V)-�WP
�V04�WP
�V7;�WP
�V>B�WP
�VEI�WP
�VLP�WP
�X
�YP
�X�YP
�X�YP
�X"&�YP
�X)-�YP
�X04�YP
�X7;�YP
�X>B�YP
�XEI�YP
�XLP�YP
�Z
�[P
�Z�[P
�Z�[P
�Z"&�[P
�Z)-�[P
�Z04�[P
�Z7;�[P
�Z>B�[P
�ZEI�[P
�ZLP�[P
�\
�]P
�\�]P
�\�]P
�\"&�]P
�\)-�]P
�\04�]P
�\7;�]P
�\>B�]P
�\EI�]P
�\LP�]P
�^
�_P
�^�_P
�^�_P
�^"&�_P
�^)-�_P
�^04�_P
�^7;�_P
�^>B�_P
�^EI�4��"�Ir$z
NameError.*a1)r��assertNotRegexr�s   r"�>test_name_error_suggestions_do_not_trigger_for_too_many_locals�[SuggestionFormattingTestBase.test_name_error_suggestions_do_not_trigger_for_too_many_locals�s,��S	�j�$�$�T�*�����F�$4�5r$c��SnURU5nURSU5 SnURU5nURSU5 g)Nc��Sn[5er=�r�r�s r"rD�QSuggestionFormattingTestBase.test_name_error_with_custom_exceptions.<locals>.func�s���E��+�r$r�c��Sn[er=rrs r"rDr�s���E��Or$r	r�s   r"�&test_name_error_with_custom_exceptions�CSuggestionFormattingTestBase.test_name_error_with_custom_exceptions�sP��	��$�$�T�*������&�)�	��$�$�T�*������&�)r$c��"SS5nU"5nURUR5nURSU5 g)Nc� �\rSrSrSrSrSrg)�ESuggestionFormattingTestBase.test_name_error_with_instance.<locals>.Ai�c��SUlgr=rrNs r"�__init__�NSuggestionFormattingTestBase.test_name_error_with_instance.<locals>.A.__init__��	��!��
r$c��Sn[ngrr)r9rVrs   r"r>�ISuggestionFormattingTestBase.test_name_error_with_instance.<locals>.A.foo�s�����r$rN�r�r�r�r�r%r>r�r�r$r"r�r#�s��
"�
r$r��
self.blech)r�r>rr�r9r�r^r�s    r"�test_name_error_with_instance�:SuggestionFormattingTestBase.test_name_error_with_instance�s7��	�	��3���$�$�X�\�\�2���
�
�l�F�+r$c��"SS5nU"5nURUR5nURSU5 g)Nc� �\rSrSrSrSrSrg)�NSuggestionFormattingTestBase.test_unbound_local_error_with_instance.<locals>.Aic��SUlgr=rrNs r"r%�WSuggestionFormattingTestBase.test_unbound_local_error_with_instance.<locals>.A.__init__r'r$c��SnWnSngrr�)r9rVr�rs    r"r>�RSuggestionFormattingTestBase.test_unbound_local_error_with_instance.<locals>.A.foos�������r$rNr*r�r$r"r�r1s��
"�
r$r�r+)r�r>rr,s    r"�&test_unbound_local_error_with_instance�CSuggestionFormattingTestBase.test_unbound_local_error_with_instances9��	�	��3���$�$�X�\�\�2������v�.r$c�(�"SS5nURU"5R5nURSU5 URSU5 URU"5R5nURSU5 URSU5 g)Nc�&�\rSrSrSrSrSrSrg)�QSuggestionFormattingTestBase.test_unbound_local_error_with_side_effect.<locals>.Aic�H�US:Xa[S5eUS:Xa[S5eg)Nr>�spam)r-rA)r9�keys  r"r]�]SuggestionFormattingTestBase.test_unbound_local_error_with_side_effect.<locals>.A.__getattr__s+���%�<�(��/�/��&�=�$�V�,�,�!r$c��[ gr=r�rNs r"�bar�USuggestionFormattingTestBase.test_unbound_local_error_with_side_effect.<locals>.A.bars��r$c��[ gr=)r<rNs r"�baz�USuggestionFormattingTestBase.test_unbound_local_error_with_side_effect.<locals>.A.bazs��r$r�N)r�r�r�r�r]r@rCr�r�r$r"r�r:s��
-�
�
r$r�zself.z'foo'z'spam')r�r@rrrrC)r9r�r�s   r"�)test_unbound_local_error_with_side_effect�FSuggestionFormattingTestBase.test_unbound_local_error_with_side_effectsv��
	�
	��(�(�����1�
�����*�-��
�
�g�z�*��(�(�����1�
�����*�-��
�
�h�
�+r$c�P�SnURU5nURSU5 g)Nc�"�Sn[W5 Sng)Nr~r�)r��	somethongs  r"rD�RSuggestionFormattingTestBase.test_unbound_local_error_does_not_match.<locals>.func(s���I��)���Ir$r�r	r�s   r"�'test_unbound_local_error_does_not_match�DSuggestionFormattingTestBase.test_unbound_local_error_does_not_match's)��	�
�$�$�T�*������f�-r$c�P�SnURU5nURSU5 g)Nc�,�[R5ngr=)�ior��streams r"rD�MSuggestionFormattingTestBase.test_name_error_for_stdlib_modules.<locals>.func1s
���[�[�]�Fr$zforget to import 'io'r�r�s   r"�"test_name_error_for_stdlib_modules�?SuggestionFormattingTestBase.test_name_error_for_stdlib_modules0s(��	#��$�$�T�*���
�
�-�v�6r$c�P�SnURU5nURSU5 g)Nc�,�[R5ngr=)�_iorrPs r"rD�USuggestionFormattingTestBase.test_name_error_for_private_stdlib_modules.<locals>.func8s
���\�\�^�Fr$zforget to import '_io'r�r�s   r"�*test_name_error_for_private_stdlib_modules�GSuggestionFormattingTestBase.test_name_error_for_private_stdlib_modules7s(��	$��$�$�T�*���
�
�.��7r$r�r=)+r�r�r�r�r�r�r�rrrr&r4rFrMrWr_rgrqr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr-r6rErKrSrYr�r�r$r"r�r��s���
�).�VU�*E�**�4�	*�'�"+�01�+�'�0�'���"0.�d	U�a�*�4�*�0�&.�P;�6�6�%�;�4�8W6�r
*�
,�/�,�,.�7�8r$r�c��\rSrSrSrSrg)�#PurePythonSuggestionFormattingTestsi@r-r�Nr.r�r$r"r\r\@s��
r$r\c��\rSrSrSrSrg)� CPythonSuggestionFormattingTestsiKr1r�Nr.r�r$r"r^r^Ks��r$r^c�`�\rSrSrSrSr\R"S5S5r\	S5r
Srg)	�MiscTestiVc�,�[5nS1n[[5HTnURS5(dX2;aM [	[U5n[	USS5S:XdMCURU5 MV UR
[RU5 g)N�
print_listr!r�rB)r=�dirrBrr�r8�assertCountEqual�__all__)r9rF�denylistr\�
module_objects     r"�test_all�MiscTest.test_allXsv���5�� �>���	�N�D����s�#�#�t�'7��#�I�t�4�M��}�l�D�9�[�H����T�"�#�	
���i�/�/��:r$c�^�U4SjnU"SSS5 U"SSS5 U"SSS5 U"SS	S5 U"S
SS5 U"S
SS5 U"SSS5 U"SSS5 U"SSS5 U"SSS5 U"SSS5 U"SSS5 U"SSS5 U"SS S5 U"S!S"S#5 U"S$S%S&5 U"S$S'S(5 U"S)S*S5 U"S)S+S&5 U"S,S-S5 g).Nc�V>�[R"XS5nTRX25 g)Ni�)rB�_levenshtein_distancern)rrrFr�r9s    �r"�CHECK�1MiscTest.test_levenshtein_distance.<locals>.CHECKgs#����4�4�Q�4�@�F����V�.r$rrrrgr�re�Apple�Aple�BananazB@n@n@r�CherryzCherry!z---0---z------r�rkra�bbrd�aaaaa�AAAAAr�wxyz�wXyZ�wXyZ123r[�Python�Javar\zC#�AbstractFoobarManager�abstract_foobar_managerry�CPython�PyPyr��pypyr�r-�AttributeErrop�AttributeErrorTests�ABA�AABr�)r9rms` r"�test_levenshtein_distance�"MiscTest.test_levenshtein_distancecs���	/�	�b�"�a��
�b�#�q��
�c�3���
�g�v�q�!�
�h��!�$�
�h�	�1�%�
�i��1�%�
�e�S�!��
�d�D�!��
�g�w��"�
�f�f�a� �
�f�i��#�
�h���#�
�f�d�A��
�%�'@�%�H�
�i���$�
�i���$�
�� 0�!�4�
�� 5�r�:�
�e�U�A�r$�cpuc	�B�[R5(dUR[S35 [RS5n[R
"U5nSSS5 WH�up4n[R"X4S5nURXeX44S9 XUS-US-4H,n[R"X4U5nURX�X4U4S9 M. [U5H,n[R"X4U5n	URX�X4U4S9 M. M� g!,(df   N�=f)Nz. is missing. Run `make regen-test-levenshtein`�rr�)r�rerg)�LEVENSHTEIN_DATA_FILE�is_filer�r��json�loadrBrlrnr�r)
r9r��examplesrrrF�res1�	threshold�res2�res3s
          r"�'test_levenshtein_distance_short_circuit�0MiscTest.test_levenshtein_distance_short_circuit�s
��$�,�,�.�.��I�I�(�)�*5�6�
�
#�
'�
'��
,���y�y��|�H�-�&�N�A�(��2�2�1��>�D����T�!���8�&�1��h��l�C�	� �6�6�q�Y�G��� � ��a�I�5F� �G�D�
#�8�_�	�!�6�6�q�Y�G���"�"�4��y�8I�"�J�	-�'�-�
,�s�D�
Dc�D�SSKnURURSS/S5S5 URURS/S5S5 "SS[5nUR	[
5 URU"5S	5 SSS5 g!,(df   g=f)
Nrr#�world�hell�
hovercraft�eelsc��\rSrSrSrg)�3MiscTest.test_suggestions_extension.<locals>.MyListi�r�Nr�r�r$r"�MyListr��r�r$r�r)�_suggestionsrn�_generate_suggestionsrb�assertRaisesr�)r9r�r�s   r"�test_suggestions_extension�#MiscTest.test_suggestions_extension�s���	�����.�.��'�"��
�
�	
�	
����.�.����
�
�	
�	�T�	��
�
�y�
)��.�.�v�x��<�*�
)�
)�s�0B�
Br�N)r�r�r�r�rhr�r�requires_resourcer�rr�r�r�r$r"r`r`VsA��	;��:
���u�%�K�&�K�0�=��=r$r`c�,�\rSrSrSrSrSrSrSrg)�TestColorizedTracebacki�c��^^	^
�Sm
U
4Sjm	U	4SjmU4SjnU"5 SR	WRSS95n[RRn[RRn[RRnURS	U-S
-U-U-S-U-U5 URSU-S
-U-U-S-U-U5 URSU-S-U-U-S-U-S-U5 URSU5 URSU5 URUS-U-U-S-U-U5 g![a)n[RRUSS9nSnAGNOSnAff=f)Nc�&�SSS00nUSSSng)Nrrrr�)rrrks   r"r>�<TestColorizedTraceback.test_colorized_traceback.<locals>.foo�s"���c�4�[�!�A��#��s��C� �Ar$c�">�U4Sj"SSSS5$)Nc�>�T"U6$r=r��rr>s �r"r#�OTestColorizedTraceback.test_colorized_traceback.<locals>.baz2.<locals>.<lambda>�s	���#�t�*r$rergr~rdr�r�s �r"�baz2�=TestColorizedTraceback.test_colorized_traceback.<locals>.baz2�s���,�a��!�A�6�6r$c�>�T"SSSS5$r"r�)rr�s �r"�baz1�=TestColorizedTraceback.test_colorized_traceback.<locals>.baz1�s�����!�A�a�=� r$c�>�T"SSSS5$r"r�)r�s�r"r@�<TestColorizedTraceback.test_colorized_traceback.<locals>.bar�s������a���
r$Tr�rrzy = zx['a']['b']z['c']zreturn z(lambda *args: foo(*args))z	(1,2,3,4)zreturn (lambda *args: r>z(*args)z
)(1,2,3,4)zreturn baz2(1,2,3,4)z.return baz1(1,
            2,3
            ,4)r@�())r�rBr�r�r�r&r5�
ANSIColors�RED�BOLD_RED�RESETrr)r9r@r�rEr��red�boldr�resetr�r�r>s        @@@r"�test_colorized_traceback�/TestColorizedTraceback.test_colorized_traceback�su���	!�	7�	!�	�	��E�
����
�
�D�
�1�2���"�"�&�&���$�$�-�-���$�$�*�*���
�
�f�s�l�]�2�U�:�U�B�W�L�u�T�V[�\��
�
�i�#�o�(D�D�u�L�u�T�Wb�b�ej�j�lq�r��
�
�.��4�u�<�u�D�u�L�y�X�[`�`�co�o�qv�w��
�
�,�e�4��
�
�H�%�P��
�
�c�E�k�E�)�E�1�D�8�5�@�%�H���	��.�.�=�=��$�>��C��	�s�E�
E5�E0�0E5c
�f�[SSS5 SRWR
SS95n[RRn[RRn[RRn[RRn[RRnSRSUS	US
USUS3	S
USUS3SUSUS3USUSUSUS3/5n	URX�5 g![a)n[RR	USS9nSnAGNSnAff=f)Nza $ bz<string>rKTr�rr�  File z
"<string>"�, line r�riz    a �$z b
z      rfrmr�zinvalid syntax)rMrmrBr�r�r�r&r5r�r��MAGENTA�BOLD_MAGENTAr�r�rr)
r9r�rEr�r��magenta�boldmr�r�rFs
          r"�test_colorized_syntax_error�2TestColorizedTraceback.test_colorized_syntax_error�s5��	��G�Z��0�
������T��2�3���"�"�&�&���&�&�.�.���$�$�1�1���$�$�-�-���$�$�*�*���7�7�
�'��*�U�G�7�7�)�1�U�G�2�F�
���q���t�$�
���q���r�"��'��U�G�2�g�Y�n�U�G�2�F�	H�
��	
�
�
�h�'��!�	��.�.�=�=��$�>��C��	�s�
C=�=
D0�D+�+D0c���SnSSKJn U"5 URS5 [RRn[RRn[RRn[RRn	[RR n
UR"R$nS	S
US[&SU
SUUS
-U
SUSU
3SUSX�-SU
3SUSX�-SU
3S
US[&SU
SUUS-U
SUSU
3SUSX�-SX�-SU
3SUSX�-SX�-SU
3U	SU
SUSU
3/nUR)WU5 g![a�n[	S5n[
RRSSS9 U"U5 SSS5 O!,(df   O=fSSS5 O!,(df   O=fWR5R5nSnAGN�SnAff=f)Nc��SS- gr�r�r�r$r"r>�KTestColorizedTraceback.test_colorized_traceback_is_the_default.<locals>.foo�rr$rr�r�r�z_colorize.can_colorizeT)�return_valuer�r��"r�r�, in �'test_colorized_traceback_is_the_defaultr4r>r��~~~�^^rer��/�0�~rfr�r��division by zero)r�r�r�r�rr�r�r�r[r�r5r�r�r�r�r�r�r�r�r�rn)
r9r>r�r�r�r�r�r�r�r�r��lno_foorFs
             r"r��>TestColorizedTraceback.test_colorized_traceback_is_the_default�s��	�	.�	6��E��I�I�,�-��"�"�&�&���$�$�-�-���&�&�.�.���$�$�1�1���$�$�*�*���,�,�-�-��8��g�Y�a��z��5�'�2��9�W�Q�Y�K��w�e�G�9�<c�di�cj�
l��3�%�s�5�;�-�r�%��1��3�%�s�5�;�-�r�%��1��g�Y�a��z��5�'�2��9�W�Q�Y�K��w�e�G�9�C��w�
H��3�%�q���
�Q�u�y�k��5�'�:��3�%�q���
�Q�u�y�k��5�'�:��g�&�u�g�R��y�8H���P�	R��	
�����*��-�	6� ��*�h��]�]�(�(�)A�PT�(�U�#�A�&�V�U�U��+�*�*���&�&�(�3�3�5�F��		6�sG�E�
G-�G(�(F3�	F�	F3�
F'�#F3�*	G(�3
G	�=%G(�(G-c��SnU"5 [R
Rn[R
Rn[R
Rn[R
Rn[R
RnURRn	SRWRSS95R5n
SSUS[ SUS	UU	S
-USUSU3S
USUUSU3S
USUUSU3SSU3S["S3SUS[ SUS	UU	S-USUSU3SSSUSUSUSU3SSSUS[ SUS	UU	S -USUSU3S!US"UUS#UUS$U3
S!US%UUS&UUS%U3
S'S(US)USUS*U3S+/nUR%X�5 g![a)n[RRUSS9nSnAGN�SnAff=f),Nc�z�/nSS- [SU5e![anURU5 SnAN,SnAff=f)Nrer�test)r�r5r�)�
exceptions�	inner_excs  r"r>�QTestColorizedTraceback.test_colorized_traceback_from_exception_group.<locals>.foosE���J�
-��A��!���4�4��%�
-��!�!�)�,�,��
-�s��
:�5�:Tr�rrr�z  |   File r�r�r�r��-test_colorized_traceback_from_exception_groupz  |     r>r�r�r�zK  |     e = ExceptionGroup('test', [ZeroDivisionError('division by zero')])z  |     foo = z  |     self = <zQ.TestColorizedTraceback testMethod=test_colorized_traceback_from_exception_group>rz0  |     raise ExceptionGroup("test", exceptions)z<  |     exceptions = [ZeroDivisionError('division by zero')]z  | r�r�ztest (1 sub-exception)r�r�z
    |   File r~z
    |     z1 r�z 0z~~rfz>    |     exceptions = [ZeroDivisionError('division by zero')]z    | r�r�r�)r�rBr�r�r5r�r�r�r�r�r�r�r�r�r&r�r�r�rn)r9r>r�rEr�r�r�r�r�r�r�rFs            r"r��DTestColorizedTraceback.test_colorized_traceback_from_exception_group
s���	5�	��E��"�"�&�&���$�$�-�-���&�&�.�.���$�$�1�1���$�$�*�*���,�,�-�-��������T��2�3�>�>�@��L� ��	��8�*�A�e�W�G�G�9�W�UV�Y�K�X]�W^�^c�dk�cl�mZ�[`�Za�b��c�U�#�e�W�U�G�2�e�W�=��c�U�#�e�W�U�G�2�e�W�=�`�#�C�5�)�%�h�Z�0A�B� ��	��8�*�A�e�W�G�G�9�W�UV�Y�K�X]�W^�^c�dk�cl�lo�pu�ov�w�E�Q��%���u�g�R��y�@V�W\�V]�^�=�=�"�7�)�1�X�J�a��w�g�g�Y�w�WX�y�k�Z_�Y`�`e�fm�en�nq�rw�qx�y���u�B�u�g�e�W�A�e�W�S�E��E�7�K���u�B�u�g�e�W�A�e�W�S�E��E�7�K�S��E�7�"3�E�7�"�W�I�EU�V[�U\�]�>�%A��&	
����*��?�	��.�.�=�=��$�>��C��	�s�F'�'
G�1G�Gr�N)	r�r�r�r�r�r�r�r�r�r�r$r"r�r��s��I�@(�*+�@*+r$r�)^r*�collectionsrrOrrAr;r�r{r�r��
unittest.mockr�rtrzrQr�rrv�test.supportrrrr	r
rr�test.support.os_helperr
rr�test.support.script_helperrrr�test.support.import_helperrrrr�r�rB�	functoolsr�pathlibrr5r�rrr|�co_positionsr}rLr��parentr��TestCaser/r�r�r�r�r,r0r4r6rr�rM�escaper�r�r�r�r�r�r�r)r=r_r�r�r�r�r�r�rd�global_for_suggestionsr�r\r^r`r��mainr�r$r"�<module>r�s���%�"���
������	��
�
��
�/�/�/�<�;�[�[�-�L�������"*�j�"8�8�*�A��b�
��v�
�y�9�:�	�7�	��
��!D�
E�
�
�T�K�
L���X��-�-�0K�K��oI�X�&�&�oI�d	>�	>�
>�
>��)E����h1�h1��h1�V#����&�'����� �������� �'����� ���������&�'����� ����C*�C*�N&��
&���Z�Z����=�)�2�9�9�_�+E�F�H�
� �	�(�+�+�-A�	� �	���"�(�"3�"3�5I�"� ��"�]+�]+�@ �
�5�x�7H�7H�
� �
�  ��4�h�6G�6G�� ��u,��"�"�u,�p&,��*�*�&,�R&$��!�!�&$�RkM��!�!�kM�Z+�+��i��
�>��
iJ�X�.�.�iJ�XZM�X�->�->�ZM�z��u	8�u	8�r�&� ������� � �������\=�x� � �\=�B@+�X�.�.�@+�D�z���M�M�O�r$

Youez - 2016 - github.com/yon3zu
LinuXploit